<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dfc="http://datafed.net/xs/wcs" xmlns:wcs="http://www.opengis.net/wcs" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="http://datafed.net/xs/wcs" xmlns="http://schemas.xmlsoap.org/wsdl/">
    <documentation>Implements SOAP Wrapper over standard OGC WCS services. </documentation>
    <types>
        <schema targetNamespace="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="2.0">
            <annotation>
                <appinfo source="urn:opengis:specification:gml:schema-xlinks:v3.0c2">xlinks.xsd v3.0b2 2001-07</appinfo>
                <documentation>
			GML 3.0 candidate xlinks schema. Copyright (c) 2001 OGC, All Rights Reserved.
		</documentation>
            </annotation>
            <!-- ==============================================================
       global declarations
  	=============================================================== -->
            <!-- locator attribute -->
            <attribute name="href" type="anyURI" />
            <!-- semantic attributes -->
            <attribute name="role" type="anyURI" />
            <attribute name="arcrole" type="anyURI" />
            <attribute name="title" type="string" />
            <!-- behavior attributes -->
            <attribute name="show">
                <annotation>
                    <documentation>
        The 'show' attribute is used to communicate the desired presentation 
        of the ending resource on traversal from the starting resource; it's 
        value should be treated as follows: 
        new - load ending resource in a new window, frame, pane, or other 
              presentation context
        replace - load the resource in the same window, frame, pane, or 
                  other presentation context
        embed - load ending resource in place of the presentation of the 
                starting resource
        other - behavior is unconstrained; examine other markup in the 
                link for hints 
        none - behavior is unconstrained 
      </documentation>
                </annotation>
                <simpleType>
                    <restriction base="string">
                        <enumeration value="new" />
                        <enumeration value="replace" />
                        <enumeration value="embed" />
                        <enumeration value="other" />
                        <enumeration value="none" />
                    </restriction>
                </simpleType>
            </attribute>
            <attribute name="actuate">
                <annotation>
                    <documentation>
        The 'actuate' attribute is used to communicate the desired timing 
        of traversal from the starting resource to the ending resource; 
        it's value should be treated as follows:
        onLoad - traverse to the ending resource immediately on loading 
                 the starting resource 
        onRequest - traverse from the starting resource to the ending 
                    resource only on a post-loading event triggered for 
                    this purpose 
        other - behavior is unconstrained; examine other markup in link 
                for hints 
        none - behavior is unconstrained
      </documentation>
                </annotation>
                <simpleType>
                    <restriction base="string">
                        <enumeration value="onLoad" />
                        <enumeration value="onRequest" />
                        <enumeration value="other" />
                        <enumeration value="none" />
                    </restriction>
                </simpleType>
            </attribute>
            <!-- traversal attributes -->
            <attribute name="label" type="string" />
            <attribute name="from" type="string" />
            <attribute name="to" type="string" />
            <!-- ==============================================================
       Attributes grouped by XLink type, as specified in the W3C 
       Proposed Recommendation (dated 2000-12-20)
	============================================================== -->
            <attributeGroup name="simpleLink">
                <attribute name="type" type="string" fixed="simple" form="qualified" />
                <attribute ref="xlink:href" use="optional" />
                <attribute ref="xlink:role" use="optional" />
                <attribute ref="xlink:arcrole" use="optional" />
                <attribute ref="xlink:title" use="optional" />
                <attribute ref="xlink:show" use="optional" />
                <attribute ref="xlink:actuate" use="optional" />
            </attributeGroup>
            <attributeGroup name="extendedLink">
                <attribute name="type" type="string" fixed="extended" form="qualified" />
                <attribute ref="xlink:role" use="optional" />
                <attribute ref="xlink:title" use="optional" />
            </attributeGroup>
            <attributeGroup name="locatorLink">
                <attribute name="type" type="string" fixed="locator" form="qualified" />
                <attribute ref="xlink:href" use="required" />
                <attribute ref="xlink:role" use="optional" />
                <attribute ref="xlink:title" use="optional" />
                <attribute ref="xlink:label" use="optional" />
            </attributeGroup>
            <attributeGroup name="arcLink">
                <attribute name="type" type="string" fixed="arc" form="qualified" />
                <attribute ref="xlink:arcrole" use="optional" />
                <attribute ref="xlink:title" use="optional" />
                <attribute ref="xlink:show" use="optional" />
                <attribute ref="xlink:actuate" use="optional" />
                <attribute ref="xlink:from" use="optional" />
                <attribute ref="xlink:to" use="optional" />
            </attributeGroup>
            <attributeGroup name="resourceLink">
                <attribute name="type" type="string" fixed="resource" form="qualified" />
                <attribute ref="xlink:role" use="optional" />
                <attribute ref="xlink:title" use="optional" />
                <attribute ref="xlink:label" use="optional" />
            </attributeGroup>
            <attributeGroup name="titleLink">
                <attribute name="type" type="string" fixed="title" form="qualified" />
            </attributeGroup>
            <attributeGroup name="emptyLink">
                <attribute name="type" type="string" fixed="none" form="qualified" />
            </attributeGroup>
        </schema>
        <xs:schema targetNamespace="http://www.opengis.net/wcs" xmlns:gml="http://www.opengis.net/gml" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.opengis.net/wcs" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.1" xml:lang="en">
            <xs:annotation>
                <xs:appinfo>getCoverage.xsd v1.0.1 2005-07-18</xs:appinfo>
                <xs:documentation>This schema defines the GetCoverage operation request and response XML elements and types, used by an OGC Web Coverage Service (WCS). This schema is believed to be a GML Application Schema. </xs:documentation>
                <xs:documentation>AEW 03/07/22 Changes made:
			Removed [xmlns:t=""] above
			Added [version="1.0.0" xml:lang="en"] above
			Removed [abstract="true"] from CoverageRequest
			Combined CoverageRequestType with CoverageRequest
			Changed names of all elements in CoverageRequest to start with lower case letter
			Defined new OutputType for "output" element in CoverageRequest
			Removed restriction of DomainSetType from DomainSubsetType, to make schema valid
			Added documention to DomainSubsetType, CoverageRequest, RangeSubsetType
			Changed definition of "name" in RangeSubsetType, to produce valid schema. Should this "name" attribute be changed to "label"?
			Simplified definition of axisSubset in RangeSubsetType
		</xs:documentation>
                <xs:documentation>AEW 03/07/29 Changes made:
			Added documentation to DomainSubsetType, GridOp
		</xs:documentation>
                <xs:documentation>AEW 03/08/01 Changes made:
			Edited documentation of many types
		</xs:documentation>
                <xs:documentation>JDE 03/08/27 Changes made:
		 	Made both GetCoverage/@service and DescribeCoverage/@version required
		</xs:documentation>
                <xs:documentation>AEW 04/07/17 Changes made:
		 	Changed "import" statement for the "wcs" namespace to an "include" statement.
		 	Added "import" statement for "gml" namespace used in gml4wcs.xsd. 
		</xs:documentation>
            </xs:annotation>
            <!-- ==========================================================
           includes and imports
	========================================================== -->
            <xs:include schemaLocation="./describeCoverage.xsd" />
            <xs:import namespace="http://www.opengis.net/gml" schemaLocation="./gml4wcs.xsd" />
            <!-- ==============================================================
       elements and types
	============================================================== -->
            <xs:element name="GetCoverage">
                <xs:annotation>
                    <xs:documentation>Request to a WCS to perform the GetCoverage operation. In this XML encoding, no "request" parameter is included, since the element name specifies the specific operation. </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="sourceCoverage" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>The coverage offering (identified by its "name") that this request will draw from.</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="domainSubset" type="DomainSubsetType" />
                        <xs:element name="rangeSubset" type="RangeSubsetType" minOccurs="0" />
                        <xs:element ref="interpolationMethod" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Spatial interpolation method to be used in  resampling data from its original form to the requested CRS and/or grid size. Method shall be among those listed for the requested coverage in the DescribeCoverage response.</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="output" type="OutputType" />
                        <xs:element name="filter" type="FilterExtensionType" minOccurs="0" />
                    </xs:sequence>
                    <xs:attribute name="service" type="xs:string" use="required" fixed="WCS" />
                    <xs:attribute name="version" type="xs:string" use="required" fixed="1.0.0" />
                </xs:complexType>
            </xs:element>
            <xs:complexType name="FilterExtensionType">
                <xs:all>
                    <xs:element name="loc_code" type="xs:normalizedString" minOccurs="0" />
                    <xs:element name="expression" type="xs:string" minOccurs="0" />
                    <xs:element name="percentile" type="PercentileFilterType" minOccurs="0" />
                    <xs:element name="months" type="xs:string" minOccurs="0" />
                    <xs:element name="days_of_week" type="xs:string" minOccurs="0" />
                    <xs:element name="hours_of_day" type="xs:string" minOccurs="0" />
                    <xs:element name="julian_days" type="xs:string" minOccurs="0" />
                    <xs:element name="location_sql" type="xs:string" minOccurs="0" />
                </xs:all>
            </xs:complexType>
            <xs:complexType name="PercentileFilterType">
                <xs:sequence>
                    <xs:element name="min" type="xs:float" />
                    <xs:element name="max" type="xs:float" />
                </xs:sequence>
            </xs:complexType>
            <!-- ======================================================= -->
            <xs:complexType name="DomainSubsetType">
                <xs:annotation>
                    <xs:documentation>Defines the desired subset of the domain set of the coverage. Is a GML property containing either or both spatialSubset and temporalSubset GML objects. </xs:documentation>
                </xs:annotation>
                <xs:choice>
                    <xs:sequence>
                        <xs:element ref="spatialSubset" />
                        <xs:element ref="temporalSubset" minOccurs="0" />
                    </xs:sequence>
                    <xs:element ref="temporalSubset" />
                </xs:choice>
            </xs:complexType>
            <!-- ======================================================= -->
            <xs:element name="spatialSubset" type="SpatialSubsetType" />
            <!-- ======================================================= -->
            <xs:complexType name="SpatialSubsetType">
                <xs:annotation>
                    <xs:documentation>Definition of a subset of a coverage spatial domain. Currently, only a grid subset of a coverage domain. </xs:documentation>
                </xs:annotation>
                <xs:complexContent>
                    <xs:restriction base="SpatialDomainType">
                        <xs:sequence>
                            <xs:element ref="gml:Envelope" />
                            <xs:element ref="gml:Grid" minOccurs="0" />
                        </xs:sequence>
                    </xs:restriction>
                </xs:complexContent>
            </xs:complexType>
            <!-- ======================================================= -->
            <xs:element name="temporalSubset" type="TimeSequenceType" />
            <!-- ======================================================= -->
            <xs:complexType name="RangeSubsetType">
                <xs:annotation>
                    <xs:documentation>Definition of a subset of the named coverage range(s). Currently, only a value enumeration definition of a range subset. </xs:documentation>
                </xs:annotation>
                <xs:sequence>
                    <xs:element name="axisSubset" maxOccurs="unbounded">
                        <xs:annotation>
                            <xs:documentation>Ordered sequence of points and/or intervals along one axis of a compound range set. </xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                            <xs:complexContent>
                                <xs:extension base="valueEnumBaseType">
                                    <xs:attribute name="name" type="xs:string" use="required">
                                        <xs:annotation>
                                            <xs:documentation>Name or identifier of one axis in this coverage. This name shall match that of an AxisDescription element in the DescribeCoverage XML response.  </xs:documentation>
                                        </xs:annotation>
                                    </xs:attribute>
                                </xs:extension>
                            </xs:complexContent>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
            <!-- ======================================================= -->
            <xs:complexType name="OutputType">
                <xs:annotation>
                    <xs:documentation>Asks for the GetCoverage response to be expressed in a particular Coordinate Reference System (crs) and encoded in a particular format. </xs:documentation>
                </xs:annotation>
                <xs:sequence>
                    <xs:element name="crs" type="gml:CodeType" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Identifier of the Coordinate Reference System (crs) in which GetCoverage response shall be expressed. Identifier shall be among those listed under supportedCRSs in the DescribeCoverage XML response. </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="format" type="gml:CodeType">
                        <xs:annotation>
                            <xs:documentation>Identifier of the format in which GetCoverage response shall be encoded. Identifier shall be among those listed under supportedFormats in the DescribeCoverage XML response. </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:schema>
        <xs:schema targetNamespace="http://www.opengis.net/wcs" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.opengis.net/wcs" xmlns:gml="http://www.opengis.net/gml" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.1" xml:lang="en">
            <xs:annotation>
                <xs:appinfo>describeCoverage.xsd v1.0.1 2005-07-18</xs:appinfo>
                <xs:documentation>This schema defines the DescribeCoverage operation request and reply XML elements and types, used by an OGC Web Coverage Service (WCS). </xs:documentation>
                <xs:documentation>JDE 2003-07-24 changes:
		Changed first and third "include" below to "import" so as to bring more than one namespace
		Made spatialDomain a global element so as to substitute for it in GetCoverage spatialSubset
		</xs:documentation>
                <xs:documentation> JDE 2003-07-28 - Made temporalSubset of type TimeSequenceType (from owsBase.xsd, uses gml:timePosition).		</xs:documentation>
                <xs:documentation>AEW 03/07/29 Changes made:
			Edited documentation of some elements and types
		</xs:documentation>
                <xs:documentation>AEW 03/07/30 Changes made:
			Corrrected defintion of temporalDomain element, makiing first letter of name lower case
		</xs:documentation>
                <xs:documentation>AEW 03/08/01 Changes made:
			Edited documentation of many types
		</xs:documentation>
                <xs:documentation>JDE 03/08/27 Changes made:
		 	Made DescribeCoverage/@service and DescribeCoverage/@version required
			Added CoverageDescription/@version (required) and CoverageDescription/@updateSequence (optional)
		</xs:documentation>
                <xs:documentation>AEW 04/07/14 Changes made:
		 	Changed two "import" statement for the "wcs" namespace to  "include" statements. 
		 	Added "import" statement for the "gml" namespace used in gml4wcs.xsd.
		</xs:documentation>
                <xs:documentation>AEW 05/07/15 Changes made:
		 	Changed documentation of updateSequence attribute in CoverageDescription element
		</xs:documentation>
            </xs:annotation>
            <!-- ==============================================================
           includes and imports
	============================================================== -->
            <xs:include schemaLocation="./wcsCapabilities.xsd" />
            <xs:include schemaLocation="./values.xsd" />
            <xs:import namespace="http://www.opengis.net/gml" schemaLocation="./gml4wcs.xsd" />
            <!-- ==============================================================
       elements and types
	============================================================== -->
            <xs:element name="DescribeCoverage">
                <xs:annotation>
                    <xs:documentation>Request to a WCS to perform the DescribeCoverage operation. In this XML encoding, no "request" parameter is included, since the element name specifies the specific operation. </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Coverage" type="xs:string" minOccurs="0" maxOccurs="unbounded">
                            <xs:annotation>
                                <xs:documentation>Name or identifier of this coverage. The same name value shall not be used for any other coverages available from the same server. A client can obtain this name by a prior GetCapabilities request, or possibly from a third-party source. If this element is omitted, the server may return descriptions of every coverage offering available, or return a service exception. </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                    <xs:attribute name="service" type="xs:string" use="required" fixed="WCS" />
                    <xs:attribute name="version" type="xs:string" use="required" fixed="1.0.0" />
                </xs:complexType>
            </xs:element>
            <!-- =========================================================== -->
            <xs:element name="CoverageDescription">
                <xs:annotation>
                    <xs:documentation>Reply from a WCS that performed the DescribeCoverage operation, containing one or more full coverage offering descriptions. </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element ref="CoverageOffering" maxOccurs="unbounded" />
                    </xs:sequence>
                    <xs:attribute name="version" type="xs:string" use="required" fixed="1.0.0" />
                    <xs:attribute name="updateSequence" type="xs:string" use="optional">
                        <xs:annotation>
                            <xs:documentation>Service metadata (Capabilities) document version, having values that are "increased" whenever any change is made in service metadata document. Values are selected by each server, and are always opaque to clients. </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
            <!-- =========================================================== -->
            <xs:element name="CoverageOffering" type="CoverageOfferingType" substitutionGroup="gml:_GML" />
            <!-- =========================================================== -->
            <xs:complexType name="CoverageOfferingType">
                <xs:annotation>
                    <xs:documentation>Full description of one coverage available from a WCS instance. </xs:documentation>
                </xs:annotation>
                <xs:complexContent>
                    <xs:extension base="CoverageOfferingBriefType">
                        <xs:sequence>
                            <xs:element ref="domainSet" />
                            <xs:element ref="rangeSet" />
                            <xs:element ref="supportedCRSs" />
                            <xs:element ref="supportedFormats" />
                            <xs:element ref="supportedInterpolations" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Specifies whether and how the server can interpolate coverage values over the spatial domain, when a GetCoverage request requires resampling, reprojection, or other generalization. If supportedInterpolations is absent or empty with no default, then clients should assume nearest-neighbor interpolation. If the only interpolation method listed is ‘none’, clients can only retrieve coverages from this layer in its native CRS and at its native resolution. </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:sequence>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <!-- =============================================================
		DomainSet elements and types			
	============================================================== -->
            <xs:element name="domainSet" type="DomainSetType" />
            <!-- =========================================================== -->
            <xs:complexType name="DomainSetType">
                <xs:annotation>
                    <xs:documentation>Defines the spatial-temporal domain set of a coverage offering. The domainSet shall include a SpatialDomain (describing the spatial locations for which coverages can be requested), a TemporalDomain (describing the time instants or inter-vals for which coverages can be requested), or both. </xs:documentation>
                </xs:annotation>
                <xs:choice>
                    <xs:sequence>
                        <xs:element ref="spatialDomain" />
                        <xs:element ref="temporalDomain" minOccurs="0" />
                    </xs:sequence>
                    <xs:element ref="temporalDomain" />
                </xs:choice>
            </xs:complexType>
            <!-- =========================================================== -->
            <xs:element name="spatialDomain" type="SpatialDomainType" />
            <!-- =========================================================== -->
            <xs:complexType name="SpatialDomainType">
                <xs:annotation>
                    <xs:documentation>Defines the spatial domain of a coverage offering. A server shall describe the spatial domain by its edges, using one or more gml:Envelope elements. The gml:EnvelopeWithTimePeriod element may be used in place of gml:Envelope, to add the time bounds of the coverage offering. Each of these elements describes a bounding box defined by two points in space (or two positions in space and two in time). This bounding box could simply duplicate the information in the lonLatEnvelope of CoverageOfferingBrief; but the intent is to describe the locations in more detail (e.g., in several different CRSs, or several rectangular areas instead of one overall bounding box). 

In addition, a server can describe the internal grid structure of a coverage offering, using a gml:Grid (or gml:RectifiedGrid) in addition to a gml:Envelope. This element can help clients assess the fitness of the gridded data for their use (e.g. its native resolution, inferred from the offsetVector of a gml:RectifiedGrid), and to formulate grid coverage requests expressed in the internal grid coordinate reference system.

Finally, a server can describe the spatial domain by means of a (repeatable) gml:Polygon, representing the polygon(s) covered by the coverage spatial domain. This is particularly useful for areas that are poorly approximated by a gml:Envelope (such as satellite image swaths, island groups, other non-convex areas). </xs:documentation>
                </xs:annotation>
                <xs:sequence>
                    <xs:element ref="gml:Envelope" maxOccurs="unbounded" />
                    <xs:element ref="gml:Grid" minOccurs="0" maxOccurs="unbounded" />
                    <xs:element ref="gml:Polygon" minOccurs="0" maxOccurs="unbounded" />
                </xs:sequence>
            </xs:complexType>
            <!-- ========================================================== -->
            <xs:element name="temporalDomain" type="TimeSequenceType">
                <xs:annotation>
                    <xs:documentation>Defines the temporal domain of a coverage offering, that is, the times for which valid data are available. The times shall to be ordered from the oldest to the newest. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <!-- =============================================================
		 RangeSet description elements and types 	
	============================================================== -->
            <xs:element name="rangeSet">
                <xs:annotation>
                    <xs:documentation>GML property containing one RangeSet GML object. </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element ref="RangeSet" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <!-- =========================================================== -->
            <xs:element name="RangeSet" type="RangeSetType" substitutionGroup="gml:_GML" />
            <!-- =========================================================== -->
            <xs:complexType name="RangeSetType">
                <xs:annotation>
                    <xs:documentation>Defines the properties (categories, measures, or values) assigned to each location in the domain. Any such property may be a scalar (numeric or text) value, such as population density, or a compound (vector or tensor) value, such as incomes by race, or radiances by wavelength. The semantic of the range set is typically an observable and is referenced by a URI. A rangeSet also has a reference system that is reffered by the URI in the refSys attribute. The refSys is either qualitative (classification) or quantitative (uom). The three attributes can be included either here and in each axisDescription. If included in both places, the values in the axisDescription over-ride those included in the RangeSet. </xs:documentation>
                </xs:annotation>
                <xs:complexContent>
                    <xs:extension base="AbstractDescriptionType">
                        <xs:sequence>
                            <xs:element ref="axisDescription" minOccurs="0" maxOccurs="unbounded">
                                <xs:annotation>
                                    <xs:documentation>Defines a range provided by a coverage. Multiple occurences are used for compound observations, to descibe an additional parameter (that is, an independent variable besides space and time), plus the valid values of this parameter (which GetCoverage requests can use to select subsets of a coverage offering). </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="nullValues" type="valueEnumType" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>Values used when valid values are not available. (The coverage encoding 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 of the coverage itself.) </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:sequence>
                        <xs:attribute ref="semantic" use="optional" />
                        <xs:attribute name="refSys" type="xs:anyURI" use="optional">
                            <xs:annotation>
                                <xs:documentation>Pointer to the reference system in which values are expressed. This attribute shall be included either here or in each AxisDescriptionType. </xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                        <xs:attribute name="refSysLabel" type="xs:string" use="optional">
                            <xs:annotation>
                                <xs:documentation>Short human-readable label denoting the reference system, for human interface display. This attribute shall be included either here or in each AxisDescriptionType. </xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <!-- ==============================================================
		Common elements and types for describing valid values in the DomainSet and RangeSet
	============================================================== -->
            <xs:element name="axisDescription">
                <xs:annotation>
                    <xs:documentation>GML property containing one AxisDescription GML object. </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element ref="AxisDescription" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <!-- ========================================================== -->
            <xs:element name="AxisDescription" type="AxisDescriptionType" substitutionGroup="gml:_GML" />
            <!-- ========================================================== -->
            <xs:complexType name="AxisDescriptionType">
                <xs:annotation>
                    <xs:documentation>Description of a measured or observed quantity, and list of the “valid” quantity values (values for which measurements are available or “by which” aggregate values are available). The semantic is the URI of the quantity (for example observable or mathematical variable). The refSys attribute is a URI to a reference system, and the refSysLabel is the label used by client to refer the reference system. </xs:documentation>
                </xs:annotation>
                <xs:complexContent>
                    <xs:extension base="AbstractDescriptionType">
                        <xs:sequence>
                            <xs:element name="values">
                                <xs:annotation>
                                    <xs:documentation>The type and value constraints for the values of this axis.</xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                    <xs:complexContent>
                                        <xs:extension base="valueEnumType">
                                            <xs:sequence>
                                                <xs:element name="default" type="TypedLiteralType" minOccurs="0">
                                                    <xs:annotation>
                                                        <xs:documentation>Ordered sequence of the parameter value(s) that the server will use for GetCoverage requests which omit a constraint on this parameter axis. (GetCoverage requests against a coverage offering whose AxisDescription has no default must specify a valid constraint for this parameter.) </xs:documentation>
                                                    </xs:annotation>
                                                </xs:element>
                                            </xs:sequence>
                                        </xs:extension>
                                    </xs:complexContent>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                        <xs:attribute ref="semantic" use="optional" />
                        <xs:attribute name="refSys" type="xs:anyURI" use="optional">
                            <xs:annotation>
                                <xs:documentation>Pointer to the reference system in which values are expressed. This attribute shall be included either here or in RangeSetType. </xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                        <xs:attribute name="refSysLabel" type="xs:string" use="optional">
                            <xs:annotation>
                                <xs:documentation>Short human-readable label denoting the reference system, for human interface display. This attribute shall be included either here or in RangeSetType. </xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
        </xs:schema>
        <xs:schema targetNamespace="http://www.opengis.net/wcs" xmlns:gml="http://www.opengis.net/gml" xmlns="http://www.opengis.net/wcs" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.1" xml:lang="en">
            <xs:annotation>
                <xs:appinfo>values.xsd v1.0.1 2005-07-18</xs:appinfo>
                <xs:documentation> This schema defines the values and enumeration elements and types used by the OGC Web Coverage Service (WCS). </xs:documentation>
                <xs:documentation>JDE 2003-07-30 Removed empty "sequence" from valueEnumType</xs:documentation>
                <xs:documentation>AEW 2005-07-15 Edited almost all documentation elements to remove TBRs and TBDs and to make them clearer. However, I do not know enough to resolve the TBD in the documentation of the "atomic" attribute in the valueRangeType. I also added documentation elements where I thought they were needed. </xs:documentation>
            </xs:annotation>
            <!-- ==============================================================
		elements and types 		
	============================================================== -->
            <xs:complexType name="valueEnumType">
                <xs:annotation>
                    <xs:documentation>List of all the valid values and/or intervals of values for this variable. For numeric variables, signed values shall be ordered from negative infinity to positive infinity. For intervals, the type and semantic attributes are inherited by children elements, but can be superceded here. </xs:documentation>
                </xs:annotation>
                <xs:complexContent>
                    <xs:extension base="valueEnumBaseType">
                        <xs:attribute ref="type" use="optional">
                            <xs:annotation>
                                <xs:documentation>Should be included if the data type is not xs:string, and the valueEnumBaseType does not include any "interval" elements that include this attribute. </xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                        <xs:attribute ref="semantic" use="optional">
                            <xs:annotation>
                                <xs:documentation>Should be included if the semantics or meaning is not clearly specified elsewhere, and the valueEnumBaseType does not include any "interval" elements that include this attribute. </xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <!-- ========================================================== -->
            <xs:complexType name="valueEnumBaseType">
                <xs:annotation>
                    <xs:documentation>List of all the valid values and/or ranges of values for this variable. For numeric variables, signed values shall be ordered from negative infinity to positive infinity. For intervals, the "type" and "semantic" attributes are inherited by children elements, but can be superceded by them. </xs:documentation>
                </xs:annotation>
                <xs:choice maxOccurs="unbounded">
                    <xs:element ref="interval" />
                    <xs:element ref="singleValue" />
                </xs:choice>
            </xs:complexType>
            <!-- ========================================================== -->
            <xs:element name="singleValue" type="TypedLiteralType">
                <xs:annotation>
                    <xs:documentation>A single value for a quantity. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <!-- ========================================================== -->
            <xs:element name="interval" type="intervalType" />
            <!-- ========================================================== -->
            <xs:complexType name="intervalType">
                <xs:annotation>
                    <xs:documentation>An interval of values of a numeric quantity. This interval can be continuous or discrete, defined by a fixed spacing between adjacent valid values. Note that the "type" and "semantic" attributes for min/max and "res" may be different (timeInstant and duration). </xs:documentation>
                </xs:annotation>
                <xs:complexContent>
                    <xs:extension base="valueRangeType">
                        <xs:sequence>
                            <xs:element name="res" type="TypedLiteralType" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>The regular distance or spacing between the allowed values in this interval. Shall be included when the allowed values are NOT continuous in this interval. Shall not be included when the allowed values are continuous in this interval. </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:sequence>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <!-- ========================================================== -->
            <xs:complexType name="valueRangeType">
                <xs:annotation>
                    <xs:documentation>The range of an interval. If the "min" or "max" element is not included, there is no value limit in that direction. Inclusion of the specified minimum and maximum values in the range shall be defined by the "closure". (The interval can be bounded or semi-bounded with different closures.) The data type and the semantic of the values are inherited by children and may be superceded by them. This range may be qualitative, i.e., nominal (age range) or qualitative (percentage) meaning that a value between min/max can be queried. </xs:documentation>
                </xs:annotation>
                <xs:sequence>
                    <xs:element name="min" type="TypedLiteralType" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Minimum value of this numeric parameter. </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="max" type="TypedLiteralType" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Maximum value of this numeric parameter. </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
                <xs:attribute ref="type" use="optional">
                    <xs:annotation>
                        <xs:documentation>Can be omitted when the datatype of values in this interval is xs:string, or the "type" attribute is included in an enclosing element. </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute ref="semantic" use="optional">
                    <xs:annotation>
                        <xs:documentation>Can be omitted when the semantics or meaning of values in this interval is clearly specified elsewhere, or the "semantic" attribute is included in an enclosing element. </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="atomic" type="xs:boolean" use="optional" default="false">
                    <xs:annotation>
                        <xs:documentation>What does this attribute mean? Is it useful and not redundant? When should this attribute be included or omitted? TBD. </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute ref="closure" use="optional">
                    <xs:annotation>
                        <xs:documentation>Shall be included unless the default value applies. </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:complexType>
            <!-- ========================================================== -->
            <xs:attribute name="closure" default="closed">
                <xs:annotation>
                    <xs:documentation>Specifies which of the minimum and maximum values are included in the range. Note that plus and minus infinity are considered closed bounds. </xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:NMTOKENS">
                        <xs:enumeration value="closed">
                            <xs:annotation>
                                <xs:documentation>The specified minimum and maximum values are included in this range. </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="open">
                            <xs:annotation>
                                <xs:documentation>The specified minimum and maximum values are NOT included in this range. </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="open-closed">
                            <xs:annotation>
                                <xs:documentation>The specified minimum value is NOT included in this range, and the specified maximum value IS included in this range. </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="closed-open">
                            <xs:annotation>
                                <xs:documentation>The specified minimum value IS included in this range, and the specified maximum value is NOT included in this range. </xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <!-- ============================================================ -->
            <xs:complexType name="TypedLiteralType">
                <xs:annotation>
                    <xs:documentation>A single value for a variable, encoded as a string. This type can be used for one value, for a spacing between allowed values, or for the default value of a parameter. The "type" attribute indicates the datatype of this value (default is a string). The value for a typed literal is found by applying the datatype mapping associated with the datatype URI to the lexical form string. </xs:documentation>
                </xs:annotation>
                <xs:simpleContent>
                    <xs:extension base="xs:string">
                        <xs:attribute ref="type" use="optional">
                            <xs:annotation>
                                <xs:documentation>Should be included unless the datatype is xs:string, or this "type" attribute is included in an enclosing element. </xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                    </xs:extension>
                </xs:simpleContent>
            </xs:complexType>
            <!-- =========================================================== -->
            <xs:attribute name="type" type="xs:anyURI">
                <xs:annotation>
                    <xs:documentation>Datatype of a typed literal value. This URI typically references XSD simple types. It has the same semantic as rdf:datatype. </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <!-- =========================================================== -->
            <xs:attribute name="semantic" type="xs:anyURI">
                <xs:annotation>
                    <xs:documentation>Definition of the semantics or meaning of the values in the XML element it belongs to. The value of this "semantic" attribute can be a RDF Property or Class of a taxonomy or ontology. </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:schema>
        <xs:schema targetNamespace="http://www.opengis.net/wcs" xmlns="http://www.opengis.net/wcs" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.0" xml:lang="en">
            <xs:annotation>
                <xs:appinfo>owsBase.xsd v1.0.0 2004-07-15</xs:appinfo>
                <xs:documentation> This schema defines the XML elements and types expected to be used by multiple OGC Web Services (OWSs). This schema is believed to be a GML Application Schema. </xs:documentation>
                <xs:documentation>AEW 03/07/22 Changes made:
			Added [xml:lang="en"] above
			Moved interpolationMethod and InterpolationMethodType here from DescribeCoverage.xsd, because I know the WCTS will also use it.
			Added documentation elements in InterpolationMethodType 
               (JDE 2003-07-28) Added LonLatBoundingBox, TimeSequence, name and description.
		</xs:documentation>
                <xs:documentation>AEW 03/07/29 Changes made:
			Edited documentation of "keywords" element and various other parts
		</xs:documentation>
                <xs:documentation>AEW 03/07/30 Changes made:
			Changed Substitution Group of lonLatEnvelope to gml:Envelope
		</xs:documentation>
                <xs:documentation>JDE 03/07/30 Changes made:
			Removed the Substitution Group on lonLatEnvelope (we only want to use it in the context of CoverageOfferingBrief)
			Added timeResolution to TimePeriodType
		</xs:documentation>
                <xs:documentation>AEW 03/08/01 Changes made:
			In SupportedCRSsType, changed element name from NativeCRSs to nativeCRSs
			Edited documentation of many types
		</xs:documentation>
                <xs:documentation>AEW 04/07/17 Changes made:
		 	Changed fived value of srsName attribute in LonLatEnvelopeBaseType to URN value in "ogc" URN namespace, based on OWS Common and OGC 05-010. Also, defined srsName attribute as being anyURI type, and explicitly marked its use as optional.
		 	Modified definition of wcs:name element to be in gml:name substitutionGroup.
		 	Modified definition of wcs:description element to no longer be in gml:name substitutionGroup.
		</xs:documentation>
            </xs:annotation>
            <!-- ==============================================================
           includes and imports
	============================================================== -->
            <xs:import namespace="http://www.opengis.net/gml" schemaLocation="gml4wcs.xsd" />
            <!-- ============================================================
		 Elements and types		
	============================================================== -->
            <xs:element name="name" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Identifier for the object, normally a descriptive name. </xs:documentation>
                    <xs:documentation>For WCS use, removed optional CodeSpace attribute from gml:name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <!-- ===========================================================-->
            <xs:element name="description" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Contains a simple text description of the object. </xs:documentation>
                    <xs:documentation>For WCS use, removed optional AssociationAttributeGroup from gml:description. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <!-- ===========================================================-->
            <xs:element name="keywords">
                <xs:annotation>
                    <xs:documentation>Unordered list of one or more commonly used or formalised word(s) or phrase(s) used to describe the subject. When needed, the optional "type" can name the type of the associated list of keywords that shall all have the same type. Also when needed, the codeSpace attribute of that "type" can also reference the type name authority and/or thesaurus. (Largely based on MD_Keywords class in ISO 19115.) </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="keyword" type="xs:string" maxOccurs="unbounded" />
                        <xs:element name="type" type="gml:CodeType" minOccurs="0" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <!-- =========================================================== -->
            <xs:element name="lonLatEnvelope" type="LonLatEnvelopeType" />
            <!-- =========================================================== -->
            <xs:complexType name="LonLatEnvelopeBaseType">
                <xs:annotation>
                    <xs:documentation>For WCS use, LonLatEnvelopeBaseType restricts gml:Envelope to the WGS84 geographic CRS with Longitude preceding Latitude and both using decimal degrees only. If included, height values are third and use metre units. </xs:documentation>
                    <xs:documentation>Envelope defines an extent using a pair of positions defining opposite corners in arbitrary dimensions. </xs:documentation>
                </xs:annotation>
                <xs:complexContent>
                    <xs:restriction base="gml:EnvelopeType">
                        <xs:sequence>
                            <xs:element ref="gml:pos" minOccurs="2" maxOccurs="2" />
                        </xs:sequence>
                        <xs:attribute name="srsName" type="xs:anyURI" use="optional" fixed="urn:ogc:def:crs:OGC:1.3:CRS84" />
                    </xs:restriction>
                </xs:complexContent>
            </xs:complexType>
            <!-- =========================================================== -->
            <xs:complexType name="LonLatEnvelopeType">
                <xs:annotation>
                    <xs:documentation>Defines spatial extent by extending LonLatEnvelope with an optional time position pair. </xs:documentation>
                </xs:annotation>
                <xs:complexContent>
                    <xs:extension base="LonLatEnvelopeBaseType">
                        <xs:sequence minOccurs="0">
                            <xs:element ref="gml:timePosition" minOccurs="2" maxOccurs="2" />
                        </xs:sequence>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <!-- =========================================================== -->
            <xs:element name="TimeSequence" type="TimeSequenceType" />
            <!-- =========================================================== -->
            <xs:complexType name="TimeSequenceType">
                <xs:annotation>
                    <xs:documentation>An ordered sequence of time positions or intervals. The time positions and periods shall be ordered from the oldest to the newest. </xs:documentation>
                </xs:annotation>
                <xs:choice maxOccurs="unbounded">
                    <xs:element ref="gml:timePosition" />
                    <xs:element ref="timePeriod" />
                </xs:choice>
            </xs:complexType>
            <!-- ========================================================= -->
            <xs:element name="timePeriod" type="TimePeriodType" />
            <!-- ========================================================= -->
            <xs:complexType name="TimePeriodType">
                <xs:annotation>
                    <xs:documentation>This is a variation of the GML TimePeriod, which allows the beginning and end of a time-period to be expressed in short-form inline using the begin/endPosition element, which allows an identifiable TimeInstant to be defined simultaneously with using it, or by reference, using xlinks on the begin/end elements. </xs:documentation>
                </xs:annotation>
                <xs:sequence>
                    <xs:element name="beginPosition" type="gml:TimePositionType" />
                    <xs:element name="endPosition" type="gml:TimePositionType" />
                    <xs:element name="timeResolution" type="gml:TimeDurationType" minOccurs="0" />
                </xs:sequence>
                <xs:attribute name="frame" type="xs:anyURI" use="optional" default="#ISO-8601" />
            </xs:complexType>
            <!-- =============================================================
	Metadata Link elements and types
	============================================================== -->
            <xs:element name="metadataLink" type="MetadataLinkType" substitutionGroup="gml:metaDataProperty" />
            <!-- =========================================================== -->
            <xs:complexType name="MetadataLinkType">
                <xs:annotation>
                    <xs:documentation>Refers to a metadata package that contains metadata properties for an object. The metadataType attribute indicates the type of metadata referred to. </xs:documentation>
                </xs:annotation>
                <xs:complexContent>
                    <xs:extension base="MetadataAssociationType">
                        <xs:attribute name="metadataType" use="required">
                            <xs:simpleType>
                                <xs:restriction base="xs:NMTOKEN">
                                    <xs:enumeration value="TC211">
                                        <xs:annotation>
                                            <xs:documentation>This metadata uses a profile of ISO TC211’s Geospatial Metadata Standard 19115. </xs:documentation>
                                        </xs:annotation>
                                    </xs:enumeration>
                                    <xs:enumeration value="FGDC">
                                        <xs:annotation>
                                            <xs:documentation>This metadata uses a profile of the US FGDC Content Standard for Digital Geospatial Metadata. </xs:documentation>
                                        </xs:annotation>
                                    </xs:enumeration>
                                    <xs:enumeration value="ISO19115">
                                        <xs:annotation>
                                            <xs:documentation>ISO 19115</xs:documentation>
                                        </xs:annotation>
                                    </xs:enumeration>
                                    <xs:enumeration value="other">
                                        <xs:annotation>
                                            <xs:documentation>This metadata uses some other metadata standard(s) and/or no standard. </xs:documentation>
                                        </xs:annotation>
                                    </xs:enumeration>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <!-- ========================================================== -->
            <xs:complexType name="MetadataAssociationType">
                <xs:annotation>
                    <xs:documentation>Refers to a metadata package that contains metadata properties for an object. </xs:documentation>
                </xs:annotation>
                <xs:complexContent>
                    <xs:restriction base="gml:MetaDataPropertyType">
                        <xs:sequence />
                        <xs:attributeGroup ref="gml:AssociationAttributeGroup" />
                        <xs:attribute name="about" type="xs:anyURI" use="optional" />
                    </xs:restriction>
                </xs:complexContent>
            </xs:complexType>
            <!-- =============================================================
		 Supported Format elements and types-			
	============================================================= -->
            <xs:element name="supportedFormats" type="SupportedFormatsType" />
            <!-- ========================================================== -->
            <xs:complexType name="SupportedFormatsType">
                <xs:annotation>
                    <xs:documentation>Unordered list of data transfer formats supported. </xs:documentation>
                </xs:annotation>
                <xs:sequence>
                    <xs:element ref="formats" maxOccurs="unbounded" />
                </xs:sequence>
                <xs:attribute name="nativeFormat" type="xs:string" use="optional">
                    <xs:annotation>
                        <xs:documentation>Identifiers of one format in which the data is stored. </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:complexType>
            <!-- ========================================================== -->
            <xs:element name="formats" type="gml:CodeListType">
                <xs:annotation>
                    <xs:documentation>Identifiers of one or more formats in which coverage content can be retrieved. The codeSpace optional attribute can reference the semantic of the format identifiers. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <!-- ============================================================
	Supports CRSs elemente and types
	============================================================= -->
            <xs:element name="supportedCRSs" type="SupportedCRSsType" />
            <!-- ========================================================== -->
            <xs:complexType name="SupportedCRSsType">
                <xs:annotation>
                    <xs:documentation>Unordered list(s) of identifiers of Coordinate Reference Systems (CRSs) supported in server operation requests and responses. </xs:documentation>
                </xs:annotation>
                <xs:sequence>
                    <xs:choice>
                        <xs:element name="requestResponseCRSs" type="gml:CodeListType" maxOccurs="unbounded">
                            <xs:annotation>
                                <xs:documentation>Unordered list of identifiers of the CRSs in which the server can both accept requests and deliver responses for this data. These CRSs should include the native CRSs defined below. </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:sequence>
                            <xs:element name="requestCRSs" type="gml:CodeListType" maxOccurs="unbounded">
                                <xs:annotation>
                                    <xs:documentation>Unordered list of identifiers of the CRSs in which the server can accept requests for this data. These CRSs should include the native CRSs defined below. </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="responseCRSs" type="gml:CodeListType" maxOccurs="unbounded">
                                <xs:annotation>
                                    <xs:documentation>Unordered list of identifiers of the CRSs in which the server can deliver responses for this data. These CRSs should include the native CRSs defined below. </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:sequence>
                    </xs:choice>
                    <xs:element name="nativeCRSs" type="gml:CodeListType" minOccurs="0" maxOccurs="unbounded">
                        <xs:annotation>
                            <xs:documentation>Unordered list of identifiers of the CRSs in which the server stores this data, that is, the CRS(s) in which data can be obtained without any distortion or degradation. </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
            <!-- ==============================================================
		 Interpolation Method elements and types
	============================================================== -->
            <xs:element name="supportedInterpolations" type="SupportedInterpolationsType" />
            <!-- =============================================== -->
            <xs:complexType name="SupportedInterpolationsType">
                <xs:annotation>
                    <xs:documentation>Unordered list of interpolation methods supported. </xs:documentation>
                </xs:annotation>
                <xs:sequence>
                    <xs:element ref="interpolationMethod" maxOccurs="unbounded" />
                </xs:sequence>
                <xs:attribute name="default" type="InterpolationMethodType" use="optional" default="nearest neighbor" />
            </xs:complexType>
            <!-- ========================================================= -->
            <xs:element name="interpolationMethod" type="InterpolationMethodType" />
            <!-- ========================================================= -->
            <xs:simpleType name="InterpolationMethodType">
                <xs:annotation>
                    <xs:documentation>Codes that identify interpolation methods. The meanings of these codes are defined in Annex B of ISO 19123: Geographic information — Schema for coverage geometry and functions. </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="nearest neighbor" />
                    <xs:enumeration value="bilinear" />
                    <xs:enumeration value="bicubic" />
                    <xs:enumeration value="lost area" />
                    <xs:enumeration value="barycentric" />
                    <xs:enumeration value="none">
                        <xs:annotation>
                            <xs:documentation>No interpolation. </xs:documentation>
                        </xs:annotation>
                    </xs:enumeration>
                </xs:restriction>
            </xs:simpleType>
        </xs:schema>
        <xs:schema targetNamespace="http://www.opengis.net/wcs" xmlns="http://www.opengis.net/wcs" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.1" xml:lang="en">
            <xs:annotation>
                <xs:appinfo>wcsCapabilities.xsd v1.0.1 2005-07-18</xs:appinfo>
                <xs:documentation>This schema defines the Capabilities operation request and reply XML
            elements and types used by an OGC Web Coverage Service (WCS). This schema with the
            schemas it uses are believed to be GML Application Schemas. </xs:documentation>
                <xs:documentation>AEW 03/07/22 Changes made: Changed element name "Section" to "section" in
            GetCapabilities Added documentation elements in GetCapabilities,
            CapabilitiesSectionType, ContentMetadata, AbstractDescriptionBaseType,
            AbstractDescriptionType Expanded documentation of WCS_CapabilitiesType Moved
            documentation from Service to ServiceType Edited documentation of OnlineResourceType,
            electronicMailAddress in AddressType Expanded separator comment before ContentMetadata
            elements and types Added separator comment before CoverageOfferingBrief Moved
            metadataLink from AbstractDescriptionType to AbstractDescriptionBaseType </xs:documentation>
                <xs:documentation>in CoverageOfferingBrief, replaced boundedBy with a new lonLatBoundingBox
            (added to owsBase.xsd); and made temporal domain of type TimeSequenceType.</xs:documentation>
                <xs:documentation>AEW 03/07/29 Changes made: Changed optionality and documentation os "fees"
            and accessConstraints" elements in ServiceType Changed reference to gml:description to
            reference to (wcs:)description in AbstractDescriptionBaseType </xs:documentation>
                <xs:documentation>AEW 03/07/30 Changes made: Added "version" and "updateSequence" attributes
            to ServiceType, WCSCapabilityType, and ContentMetadata </xs:documentation>
                <xs:documentation>JDE 03/07/30 - Added "version" and "updateSequence" attributes to
            WCS_Capabilities type 03/08/27 - Made "version" attribute required </xs:documentation>
                <xs:documentation>AEW 04/07/13 Changes made: Added declaration of the "xlink" namespace. In
            wcs:AbstractDescriptionType, added the elements wcs:description and wcs:name, and the
            attribute "gml:id" with use="prohibited". </xs:documentation>
                <xs:documentation>AEW 05/07/18 Changes made: Changed documentation of updateSequence
            attribute in GetCapabilities element, WCS_CapabilitiesType, ServiceType,
            WCSCapabilityType, and ContentMetadata element. Added documentation of all enumeration
            values in CapabilitiesSectionType. Added documentation of WCSCapabilityType,
            DCPTypeType, CoverageOfferingBriefType, and AbstractDescriptionType. </xs:documentation>
                <xs:documentation>JDE 2005/08/31 Changes made: AbstractDescriptionBaseType: made
            metadataLink repeatable </xs:documentation>
            </xs:annotation>
            <!-- ==============================================================       includes and imports	============================================================== -->
            <xs:include schemaLocation="./owsBase.xsd" />
            <xs:import namespace="http://www.opengis.net/gml" schemaLocation="./gml4wcs.xsd" />
            <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="../../xlink/1.0.0/xlinks.xsd" />
            <!-- ==============================================================       elements and types	============================================================== -->
            <xs:element name="GetCapabilities">
                <xs:annotation>
                    <xs:documentation>Request to a WCS to perform the GetCapabilities operation. In this XML
                encoding, no "request" parameter is included, since the element name specifies the
                specific operation. </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="section" type="CapabilitiesSectionType" default="/" minOccurs="0" />
                    </xs:sequence>
                    <xs:attribute name="service" type="xs:string" use="required" fixed="WCS" />
                    <xs:attribute name="version" type="xs:string" use="optional" fixed="1.0.0" />
                    <xs:attribute name="updateSequence" type="xs:string" use="optional">
                        <xs:annotation>
                            <xs:documentation>Service metadata (Capabilities) document version, having
                        values that are "increased" whenever any change is made in service metadata
                        document. Values are selected by each server, and are always opaque to
                        clients. When omitted or not supported by server, server shall return latest
                        complete service metadata document. </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
            <!-- =========================================================== -->
            <xs:simpleType name="CapabilitiesSectionType">
                <xs:annotation>
                    <xs:documentation>Identification of desired part of full Capabilities XML document to be
                returned. </xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="/">
                        <xs:annotation>
                            <xs:documentation>TBD. </xs:documentation>
                        </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="/WCS_Capabilities/Service">
                        <xs:annotation>
                            <xs:documentation>TBD. </xs:documentation>
                        </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="/WCS_Capabilities/Capability">
                        <xs:annotation>
                            <xs:documentation>TBD. </xs:documentation>
                        </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="/WCS_Capabilities/ContentMetadata">
                        <xs:annotation>
                            <xs:documentation>TBD. </xs:documentation>
                        </xs:annotation>
                    </xs:enumeration>
                </xs:restriction>
            </xs:simpleType>
            <!-- =========================================================== -->
            <xs:element name="WCS_Capabilities" type="WCS_CapabilitiesType" />
            <!-- =========================================================== -->
            <xs:complexType name="WCS_CapabilitiesType">
                <xs:annotation>
                    <xs:documentation>Metadata for a WCS server, also known as Capabilities document. Reply
                from a WCS that performed the GetCapabilities operation. </xs:documentation>
                </xs:annotation>
                <xs:sequence>
                    <xs:element ref="Service" />
                    <xs:element ref="Capability" />
                    <xs:element ref="ContentMetadata" />
                </xs:sequence>
                <xs:attribute name="version" type="xs:string" use="required" fixed="1.0.0" />
                <xs:attribute name="updateSequence" type="xs:string" use="optional">
                    <xs:annotation>
                        <xs:documentation>Service metadata (Capabilities) document version, having values
                    that are "increased" whenever any change is made in service metadata document.
                    Values are selected by each server, and are always opaque to clients. When
                    supported by server, server shall return this attribute. </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:complexType>
            <!-- =============================================================		Service elements and types 	============================================================== -->
            <xs:element name="Service" type="ServiceType" />
            <!-- FIX removed substitutionGroup="gml:_GML"-->
            <!-- =========================================================== -->
            <xs:complexType name="ServiceType">
                <xs:annotation>
                    <xs:documentation>A minimal, human readable rescription of the service.
            </xs:documentation>
                </xs:annotation>
                <xs:complexContent>
                    <xs:extension base="AbstractDescriptionType">
                        <xs:sequence>
                            <xs:element ref="keywords" minOccurs="0" maxOccurs="unbounded" />
                            <xs:element name="responsibleParty" type="ResponsiblePartyType" minOccurs="0" />
                            <xs:element name="fees" type="gml:CodeListType">
                                <xs:annotation>
                                    <xs:documentation>A text string identifying any fees imposed by the
                                service provider. The keyword NONE shall be used to mean no fees.
                            </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="accessConstraints" type="gml:CodeListType" maxOccurs="unbounded">
                                <xs:annotation>
                                    <xs:documentation>A text string identifying any access constraints
                                imposed by the service provider. The keyword NONE shall be used to
                                mean no access constraints are imposed. </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:sequence>
                        <xs:attribute name="version" type="xs:string" use="optional" fixed="1.0.0" />
                        <xs:attribute name="updateSequence" type="xs:string" use="optional">
                            <xs:annotation>
                                <xs:documentation>Service metadata (Capabilities) document version, having
                            values that are "increased" whenever any change is made in service
                            metadata document. Values are selected by each server, and are always
                            opaque to clients. When supported by server, server shall return this
                            attribute. </xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <!-- =========================================================== -->
            <xs:complexType name="ResponsiblePartyType">
                <xs:annotation>
                    <xs:documentation>Identification of, and means of communication with, person(s) and
                organizations associated with the server. </xs:documentation>
                </xs:annotation>
                <xs:sequence>
                    <xs:choice>
                        <xs:sequence>
                            <xs:element name="individualName" type="xs:string">
                                <xs:annotation>
                                    <xs:documentation>Name of the responsible person-surname, given name,
                                title separated by a delimiter. </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="organisationName" type="xs:string" minOccurs="0" />
                        </xs:sequence>
                        <xs:element name="organisationName" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>Name of the responsible organizationt. </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:choice>
                    <xs:element name="positionName" type="xs:string" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Role or position of the responsible person.
                    </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="contactInfo" type="ContactType" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Address of the responsible party. </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
            <!-- =========================================================== -->
            <xs:complexType name="ContactType">
                <xs:annotation>
                    <xs:documentation>Information required to enable contact with the responsible person
                and/or organization. </xs:documentation>
                </xs:annotation>
                <xs:sequence>
                    <xs:element name="phone" type="TelephoneType" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Telephone numbers at which the organization or individual may
                        becontacted. </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="address" type="AddressType" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Physical and email address at which the organization or
                        individualmay be contacted. </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="onlineResource" type="OnlineResourceType" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>On-line information that can be used to contact the individual
                        ororganization. </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
            <!-- =========================================================== -->
            <xs:complexType name="OnlineResourceType">
                <xs:annotation>
                    <xs:documentation>Reference to on-line resource from which data can be obtained.
            </xs:documentation>
                </xs:annotation>
                <xs:attributeGroup ref="xlink:simpleLink" />
            </xs:complexType>
            <!-- ========================================================== -->
            <xs:complexType name="TelephoneType">
                <xs:annotation>
                    <xs:documentation>Telephone numbers for contacting the responsible individual or
                organization. </xs:documentation>
                </xs:annotation>
                <xs:sequence>
                    <xs:element name="voice" type="xs:string" minOccurs="0" maxOccurs="unbounded">
                        <xs:annotation>
                            <xs:documentation>Telephone number by which individuals can speak to the
                        responsible organization or individual. </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="facsimile" type="xs:string" minOccurs="0" maxOccurs="unbounded">
                        <xs:annotation>
                            <xs:documentation>Telephone number of a facsimile machine for the
                        responsibleorganization or individual. </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
            <!-- =========================================================== -->
            <xs:complexType name="AddressType">
                <xs:annotation>
                    <xs:documentation>Location of the responsible individual or organization.
            </xs:documentation>
                </xs:annotation>
                <xs:sequence>
                    <xs:element name="deliveryPoint" type="xs:string" minOccurs="0" maxOccurs="unbounded">
                        <xs:annotation>
                            <xs:documentation>Address line for the location (as described in ISO 11180,
                        Annex A). </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="city" type="xs:string" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>City of the location. </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="administrativeArea" type="xs:string" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>State ot province of the location. </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="postalCode" type="xs:string" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>ZIP or other postal code. </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="country" type="xs:string" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Country of the physical address. </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="electronicMailAddress" type="xs:string" minOccurs="0" maxOccurs="unbounded">
                        <xs:annotation>
                            <xs:documentation>Address of the electronic mailbox of the responsible
                        organization or individual. </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
            <!-- =============================================================		WCSCapabilityType types and elements 	============================================================== -->
            <xs:element name="Capability" type="WCSCapabilityType" />
            <xs:complexType name="WCSCapabilityType">
                <xs:annotation>
                    <xs:documentation>XML encoded WCS GetCapabilities operation response. The Capabilities
                document provides clients with service metadata about a specific service instance,
                including metadata about the coverages served. </xs:documentation>
                </xs:annotation>
                <xs:sequence>
                    <xs:element name="Request">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="GetCapabilities">
                                    <xs:complexType>
                                        <xs:sequence>
                                            <xs:element name="DCPType" type="DCPTypeType" maxOccurs="unbounded" />
                                        </xs:sequence>
                                    </xs:complexType>
                                </xs:element>
                                <xs:element name="DescribeCoverage">
                                    <xs:complexType>
                                        <xs:sequence>
                                            <xs:element name="DCPType" type="DCPTypeType" maxOccurs="unbounded" />
                                        </xs:sequence>
                                    </xs:complexType>
                                </xs:element>
                                <xs:element name="GetCoverage">
                                    <xs:complexType>
                                        <xs:sequence>
                                            <xs:element name="DCPType" type="DCPTypeType" maxOccurs="unbounded" />
                                        </xs:sequence>
                                    </xs:complexType>
                                </xs:element>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                    <xs:element name="Exception">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="Format" type="xs:string" maxOccurs="unbounded" />
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                    <xs:element name="VendorSpecificCapabilities" minOccurs="0">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:any />
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
                <xs:attribute name="version" type="xs:string" use="optional" fixed="1.0.0" />
                <xs:attribute name="updateSequence" type="xs:string" use="optional">
                    <xs:annotation>
                        <xs:documentation>Service metadata document version, having values that are
                    "increased" whenever any change is made in service metadata document. Values are
                    selected by each server, and are always opaque to clients. When not supported by
                    server, server shall not return this attribute. </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:complexType>
            <!-- =========================================================== -->
            <xs:complexType name="DCPTypeType">
                <xs:annotation>
                    <xs:documentation>Connect point URLs for the HTTP Distributed Computing Platform (DCP).
                Normally, only one Get and/or one Post is included in this element. More than one
                Get and/or Post is allowed to support including alternative URLs for uses such as
                load balancing or backup. </xs:documentation>
                </xs:annotation>
                <xs:sequence>
                    <xs:element name="HTTP">
                        <xs:complexType>
                            <xs:choice maxOccurs="unbounded">
                                <xs:element name="Get">
                                    <xs:complexType>
                                        <xs:sequence>
                                            <xs:element name="OnlineResource" type="OnlineResourceType" />
                                        </xs:sequence>
                                    </xs:complexType>
                                </xs:element>
                                <xs:element name="Post">
                                    <xs:complexType>
                                        <xs:sequence>
                                            <xs:element name="OnlineResource" type="OnlineResourceType" />
                                        </xs:sequence>
                                    </xs:complexType>
                                </xs:element>
                            </xs:choice>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
            <!-- =============================================================		ContentMetadata elements and types		=========================================================== -->
            <xs:element name="ContentMetadata">
                <xs:annotation>
                    <xs:documentation>Unordered list of brief descriptions of all coverages avaialble from
                this WCS, or a reference to another service from which this information is
                available. </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element ref="CoverageOfferingBrief" minOccurs="0" maxOccurs="unbounded" />
                    </xs:sequence>
                    <xs:attributeGroup ref="gml:AssociationAttributeGroup" />
                    <xs:attribute name="version" type="xs:string" use="optional" fixed="1.0.0" />
                    <xs:attribute name="updateSequence" type="xs:string" use="optional">
                        <xs:annotation>
                            <xs:documentation>Service metadata document version, having values that are
                        "increased" whenever any change is made in service metadata document. Values
                        are selected by each server, and are always opaque to clients. When not
                        supported by server, server shall not return this attribute.
                    </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
            <!-- =========================================================== -->
            <xs:element name="CoverageOfferingBrief" type="CoverageOfferingBriefType" />
            <!-- FIX substitutionGroup="gml:_GML" -->
            <!-- =========================================================== -->
            <xs:complexType name="CoverageOfferingBriefType">
                <xs:annotation>
                    <xs:documentation>Brief description of one coverage avaialble from a WCS.
            </xs:documentation>
                </xs:annotation>
                <xs:complexContent>
                    <xs:extension base="AbstractDescriptionType">
                        <xs:sequence>
                            <xs:element ref="lonLatEnvelope" />
                            <xs:element ref="keywords" minOccurs="0" maxOccurs="unbounded" />
                        </xs:sequence>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <!-- =========================================================== -->
            <xs:complexType name="AbstractDescriptionBaseType" abstract="true">
                <xs:annotation>
                    <xs:documentation>Description of a WCS object. </xs:documentation>
                </xs:annotation>
                <xs:complexContent>
                    <xs:extension base="gml:AbstractGMLType">
                        <xs:sequence>
                            <xs:element ref="metadataLink" minOccurs="0" maxOccurs="unbounded" />
                        </xs:sequence>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
            <!-- =========================================================== -->
            <xs:complexType name="AbstractDescriptionType" abstract="true">
                <xs:annotation>
                    <xs:documentation>Human-readable descriptive information for the object it is included
                within.</xs:documentation>
                </xs:annotation>
                <xs:complexContent>
                    <xs:extension base="AbstractDescriptionBaseType">
                        <xs:sequence>
                            <xs:element ref="description" minOccurs="0" />
                            <xs:element ref="name" />
                            <xs:element name="label" type="xs:string">
                                <xs:annotation>
                                    <xs:documentation>Short human-readable label for this object, for human
                                interface display. </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:sequence>
                        <!-- FIX removed <xs:attribute ref="gml:id" use="prohibited"/> -->
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
        </xs:schema>
        <schema targetNamespace="http://www.opengis.net/gml" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="3.00" xml:lang="en">
            <annotation>
                <appinfo>gml4wcs.xsd v1.0.0 2003-07-29</appinfo>
                <documentation>GML profile for WCS </documentation>
                <documentation>AEW 03/07/22 Changes made:
			Edited documentation of "name" element
		</documentation>
                <documentation>JDE 2003-07-28: 
			Added indeterminatePosition attribute to timePosition
			Added 11 new elements and types from geometryBasic2d.xsd (to define Polygon, used in CoverageDescription...SpatialDomain)
		</documentation>
                <documentation>AEW 03/07/29 Changes made:
			Rearranged elements and types and inserted comments indicating the GML schema from which groups of elements and types were copied or edited into this profile
		</documentation>
                <documentation>JDE 2003-07-30 Added TimeDurationType</documentation>
            </annotation>
            <!-- ======== includes and imports =================================== -->
            <import namespace="http://www.w3.org/1999/xlink" schemaLocation="../../xlink/1.0.0/xlinks.xsd" />
            <!-- ===========================================================
	GML profile elements and types from gmlBase.xsd	============================================================== -->
            <element name="_Object" abstract="true">
                <annotation>
                    <documentation>This abstract element is the head of a substitutionGroup hierararchy which may contain either simpleContent or complexContent elements. It is used to assert the model position of "class" elements declared in other GML schemas.  </documentation>
                </annotation>
            </element>
            <!-- ============================================================== -->
            <element name="_GML" type="gml:AbstractGMLType" abstract="true" substitutionGroup="gml:_Object">
                <annotation>
                    <documentation>Global element which acts as the head of a substitution group that may include any element which is a GML feature, object, geometry or complex value</documentation>
                </annotation>
            </element>
            <!-- =========================================================== -->
            <complexType name="AbstractGMLType" abstract="true">
                <annotation>
                    <documentation> The optional attribute "gml:id" is omitted from this profile. </documentation>
                    <documentation>All complexContent GML elements are directly or indirectly derived from this abstract supertype to establish a hierarchy of GML types that may be distinguished from other XML types by their ancestry. </documentation>
                </annotation>
                <sequence>
                    <element ref="gml:metaDataProperty" minOccurs="0" maxOccurs="unbounded" />
                    <element ref="gml:description" minOccurs="0" />
                    <element ref="gml:name" minOccurs="0" maxOccurs="unbounded">
                        <annotation>
                            <documentation>Multiple names may be provided.  These will often be distinguished by being assigned by different authorities, as indicated by the value of the codeSpace attribute.  In an instance document there will usually only be one name per authority. </documentation>
                        </annotation>
                    </element>
                </sequence>
            </complexType>
            <!-- =========================================================== -->
            <element name="name" type="gml:CodeType">
                <annotation>
                    <documentation>Identifier for the object, normally a descriptive name. An object may have several names, typically assigned by different authorities.  The authority for a name is indicated by the value of its (optional) codeSpace attribute.  The name may or may not be unique, as determined by the rules of the organization responsible for the codeSpace.</documentation>
                </annotation>
            </element>
            <!-- =========================================================== -->
            <attribute name="id" type="ID">
                <annotation>
                    <documentation>Database handle for the object.  It is of XML type “ID”, so is constrained to be unique in the XML document within which it occurs.  An external identifier for the object in the form of a URI may be constructed using standard XML and XPointer methods.  This is done by concatenating the URI for the document, a fragment separator “#”, and the value of the id attribute.  </documentation>
                </annotation>
            </attribute>
            <!-- =========================================================== -->
            <element name="description" type="gml:StringOrRefType">
                <annotation>
                    <documentation>Contains a simple text description of the object, or refers to an external description.  </documentation>
                </annotation>
            </element>
            <!-- ===================================================== -->
            <complexType name="StringOrRefType">
                <annotation>
                    <documentation>
This type is available wherever there is a need for a "text" type property. It is of string type, so the text can be included inline, but the value can also be referenced remotely via xlinks from the AssociationAttributeGroup. If the remote reference is present, then the value obtained by traversing the link should be used, and the string content of the element can be used for an annotation.  </documentation>
                </annotation>
                <simpleContent>
                    <extension base="string">
                        <attributeGroup ref="gml:AssociationAttributeGroup" />
                    </extension>
                </simpleContent>
            </complexType>
            <!-- =========================================================== -->
            <element name="metaDataProperty" type="gml:MetaDataPropertyType">
                <annotation>
                    <documentation>Contains or refers to a metadata package that contains metadata properties.  </documentation>
                </annotation>
            </element>
            <!-- =========================================================== -->
            <complexType name="MetaDataPropertyType">
                <annotation>
                    <documentation> Base type for complex metadata property types.</documentation>
                </annotation>
                <sequence>
                    <element ref="gml:_MetaData" minOccurs="0" />
                </sequence>
                <attributeGroup ref="gml:AssociationAttributeGroup" />
                <attribute name="about" type="anyURI" use="optional" />
            </complexType>
            <!-- =========================================================== -->
            <element name="_MetaData" type="gml:AbstractMetaDataType" abstract="true" substitutionGroup="gml:_Object">
                <annotation>
                    <documentation>Abstract element which acts as the head of a substitution group for packages of MetaData properties.  </documentation>
                </annotation>
            </element>
            <!-- =========================================================== -->
            <complexType name="AbstractMetaDataType" abstract="true" mixed="true">
                <annotation>
                    <documentation>An abstract base type for complex metadata types.</documentation>
                </annotation>
                <attribute ref="gml:id" use="optional" />
            </complexType>
            <!-- =========================================================== -->
            <attributeGroup name="AssociationAttributeGroup">
                <annotation>
                    <documentation>Attribute group used to enable property elements to refer to their value remotely. It contains the “simple link” components from xlinks.xsd, with all members “optional”, and the remoteSchema attribute, which is also optional.  These attributes can be attached to any element, thus allowing it to act as a pointer. The 'remoteSchema' attribute allows an element  that carries link attributes to indicate that the element is declared  in a remote schema rather than by the schema that constrains the current document instance. </documentation>
                </annotation>
                <attributeGroup ref="xlink:simpleLink" />
                <attribute ref="gml:remoteSchema" use="optional" />
            </attributeGroup>
            <!-- =========================================================== -->
            <attribute name="remoteSchema" type="anyURI">
                <annotation>
                    <documentation>Reference to an XML Schema fragment that specifies the content model of the property’s value. This is in conformance with the XML Schema Section 4.14 Referencing Schemas from Elsewhere. </documentation>
                </annotation>
            </attribute>
            <!-- =========================================================== -->
            <complexType name="ReferenceType">
                <annotation>
                    <documentation> A pattern or base for derived types used to specify complex types corresponding to a UML aggregation association.  An instance of this type serves as a pointer to a remote Object.  
 </documentation>
                </annotation>
                <sequence />
                <attributeGroup ref="gml:AssociationAttributeGroup" />
            </complexType>
            <!-- ===========================================================
	GML profile elements and types from geometryBasic0d1d.xsd	============================================================== -->
            <element name="_Geometry" type="gml:AbstractGeometryType" abstract="true" substitutionGroup="gml:_GML">
                <annotation>
                    <documentation>The "_Geometry" element is the abstract head of the substituition group for all geometry elements of GML 3. This includes pre-defined and user-defined geometry elements. Any geometry element must be a direct or indirect extension/restriction of AbstractGeometryType and must be directly or indirectly in the substitution group of "_Geometry".</documentation>
                </annotation>
            </element>
            <!-- =========================================================== -->
            <complexType name="AbstractGeometryType" abstract="true">
                <annotation>
                    <documentation>All geometry elements are derived directly or indirectly from this abstract supertype. A geometry element may have an identifying attribute ("gml:id"), a name (attribute "name") and a description (attribute "description"). It may be associated with a spatial reference system (attribute "srsName"). The following rules shall be adhered: - Every geometry type shall derive from this abstract type. - Every geometry element (i.e. an element of a geometry type) shall be directly or indirectly in the substitution group of _Geometry.</documentation>
                </annotation>
                <complexContent>
                    <extension base="gml:AbstractGeometryBaseType">
                        <attribute name="srsName" type="anyURI" use="optional">
                            <annotation>
                                <documentation>No gid attribute added.</documentation>
                                <documentation>In general srsName points to a CRS instance of gml:CoordinateReferenceSystemType (see coordinateReferenceSystems.xsd). For well known references it is not required that the CRS description exists at the location the URI points to (Note: These "WKCRS"-ids still have to be specified).  If no srsName attribute is given, the CRS must be specified as part of the larger context this geometry element is part of, e.g. a geometric aggregate.</documentation>
                            </annotation>
                        </attribute>
                    </extension>
                </complexContent>
            </complexType>
            <!-- =========================================================== -->
            <complexType name="AbstractGeometryBaseType" abstract="true">
                <annotation>
                    <documentation>Removes gml:name, gml:description, and gml:metadataLink from AbstractGMLType. </documentation>
                </annotation>
                <complexContent>
                    <restriction base="gml:AbstractGMLType" />
                </complexContent>
            </complexType>
            <!-- =========================================================== -->
            <element name="_GeometricPrimitive" type="gml:AbstractGeometricPrimitiveType" abstract="true" substitutionGroup="gml:_Geometry">
                <annotation>
                    <documentation>The "_GeometricPrimitive" element is the abstract head of the substituition group for all (pre- and user-defined) geometric primitives.</documentation>
                </annotation>
            </element>
            <!-- =========================================================== -->
            <complexType name="AbstractGeometricPrimitiveType" abstract="true">
                <annotation>
                    <documentation>This is the abstract root type of the geometric primitives. A geometric primitive is a geometric object that is not decomposed further into other primitives in the system. All primitives are oriented in the direction implied by the sequence of their coordinate tuples.</documentation>
                </annotation>
                <complexContent>
                    <extension base="gml:AbstractGeometryType" />
                </complexContent>
            </complexType>
            <!-- ============================================================== -->
            <element name="Envelope" type="gml:EnvelopeType" substitutionGroup="gml:_Geometry" />
            <!-- =========================================================== -->
            <complexType name="EnvelopeType">
                <annotation>
                    <documentation>Envelope defines an extent using a pair of positions defining opposite corners in arbitrary dimensions.</documentation>
                </annotation>
                <complexContent>
                    <extension base="gml:AbstractGeometryType">
                        <sequence>
                            <element ref="gml:pos" minOccurs="2" maxOccurs="2" />
                        </sequence>
                    </extension>
                </complexContent>
            </complexType>
            <element name="pos" type="gml:DirectPositionType" />
            <!-- =========================================================== -->
            <complexType name="PointType">
                <annotation>
                    <documentation>A Point is defined by a single coordinate tuple.</documentation>
                </annotation>
                <complexContent>
                    <extension base="gml:AbstractGeometryType">
                        <sequence>
                            <annotation>
                                <documentation>This profile uses only the "pos" element - no coordinates or coord.</documentation>
                            </annotation>
                            <element ref="gml:pos" />
                        </sequence>
                    </extension>
                </complexContent>
            </complexType>
            <!-- =========================================================== -->
            <complexType name="VectorType">
                <annotation>
                    <documentation>A Vector is an ordered set of numbers called coordinates that represent a position in a coordinate reference system (CRS). For some application the components of the position may be adjusted to yield a unit vector.</documentation>
                </annotation>
                <simpleContent>
                    <restriction base="gml:DirectPositionType" />
                </simpleContent>
            </complexType>
            <!-- ============================================================== -->
            <complexType name="DirectPositionType">
                <annotation>
                    <documentation>DirectPosition instances hold the coordinates for a position within some coordinate reference system (CRS). Since DirectPositions, as data types, will often be included in larger objects (such as geometry elements) that have references to CRS, the "srsName" attribute will in general be missing, if this particular DirectPosition is included in a larger element with such a reference to a CRS. In this case, the CRS is implicitly assumed to take on the value of the containing object's CRS.</documentation>
                </annotation>
                <simpleContent>
                    <extension base="gml:doubleList">
                        <attribute name="dimension" type="positiveInteger" use="optional">
                            <annotation>
                                <documentation>The attribute "dimension" is the length of coordinate sequence (the number of entries in the list). This is determined by the coordinate reference system.</documentation>
                            </annotation>
                        </attribute>
                    </extension>
                </simpleContent>
            </complexType>
            <!-- ===========================================================
	GML profile elements and types from basicTypes.xsd	============================================================== -->
            <complexType name="CodeType">
                <annotation>
                    <documentation>Name or code with an (optional) authority.  Text token.  
      If the codeSpace attribute is present, then its value should identify a dictionary, thesaurus 
      or authority for the term, such as the organisation who assigned the value, 
      or the dictionary from which it is taken.  
      A text string with an optional codeSpace attribute. </documentation>
                </annotation>
                <simpleContent>
                    <extension base="string">
                        <attribute name="codeSpace" type="anyURI" use="optional" />
                    </extension>
                </simpleContent>
            </complexType>
            <!-- =========================================================== -->
            <complexType name="CodeListType">
                <annotation>
                    <documentation>List of values on a uniform nominal scale.  List of text tokens.   
      In a list context a token should not include any spaces, so xsd:Name is used instead of xsd:string.   
      If a codeSpace attribute is present, then its value is a reference to 
      a Reference System for the value, a dictionary or code list.</documentation>
                </annotation>
                <simpleContent>
                    <extension base="gml:NameList">
                        <attribute name="codeSpace" type="anyURI" use="optional" />
                    </extension>
                </simpleContent>
            </complexType>
            <!-- =========================================================== -->
            <simpleType name="NameList">
                <annotation>
                    <documentation>XML List based on XML Schema Name type.  An element of this type contains a space-separated list of Name values</documentation>
                </annotation>
                <list itemType="string" />
                <!-- changed nby KKH -->
            </simpleType>
            <!-- =========================================================== -->
            <simpleType name="integerList">
                <annotation>
                    <documentation>XML List based on XML Schema integer type.  An element of this type contains a space-separated list of integer values</documentation>
                </annotation>
                <list itemType="integer" />
            </simpleType>
            <!-- =========================================================== -->
            <simpleType name="doubleList">
                <annotation>
                    <documentation>XML List based on XML Schema double type.  An element of this type contains a space-separated list of double values</documentation>
                </annotation>
                <list itemType="double" />
            </simpleType>
            <!-- ===========================================================
	GML profile elements and types from feature.xsd	============================================================== -->
            <element name="boundedBy" type="gml:BoundingShapeType" />
            <!-- =========================================================== -->
            <complexType name="BoundingShapeType">
                <annotation>
                    <documentation>Bounding shape.</documentation>
                </annotation>
                <sequence>
                    <element ref="gml:Envelope" />
                </sequence>
            </complexType>
            <!-- =========================================================== -->
            <element name="EnvelopeWithTimePeriod" type="gml:EnvelopeWithTimePeriodType" substitutionGroup="gml:Envelope" />
            <!-- =========================================================== -->
            <complexType name="EnvelopeWithTimePeriodType">
                <annotation>
                    <documentation>Envelope that includes also a temporal extent.</documentation>
                </annotation>
                <complexContent>
                    <extension base="gml:EnvelopeType">
                        <sequence>
                            <element ref="gml:timePosition" minOccurs="2" maxOccurs="2" />
                        </sequence>
                        <attribute name="frame" type="anyURI" use="optional" default="#ISO-8601" />
                    </extension>
                </complexContent>
            </complexType>
            <!-- ===========================================================
	GML profile elements and types from temporal.xsd	============================================================== -->
            <element name="timePosition" type="gml:TimePositionType">
                <annotation>
                    <documentation>Direct representation of a temporal position. </documentation>
                </annotation>
            </element>
            <!-- =========================================================== -->
            <complexType name="TimePositionType" final="#all">
                <annotation>
                    <documentation>
      Indeterminate time values are also allowed, as described in ISO 19108. The indeterminatePosition 
      attribute can be used alone or it can qualify a specific value for temporal position (e.g. before 
      2002-12, after 1019624400). For time values that identify position within a calendar, the 
      calendarEraName attribute provides the name of the calendar era to which the date is 
      referenced (e.g. the Meiji era of the Japanese calendar).
      </documentation>
                </annotation>
                <simpleContent>
                    <extension base="gml:TemporalPositionType">
                        <attribute name="calendarEraName" type="string" use="optional" />
                        <attribute name="frame" type="anyURI" use="optional" default="#ISO-8601" />
                        <attribute name="indeterminatePosition" type="gml:TimeIndeterminateValueType" use="optional" />
                    </extension>
                </simpleContent>
            </complexType>
            <!-- =========================================================== -->
            <simpleType name="TemporalPositionType">
                <annotation>
                    <documentation>
      Here we have collapsed the hierarchy of subtypes for temporal position in 19108 
      by defining a union of simple types for indicating temporal position relative to a 
      specific reference system. 
      Date and time may be indicated with varying degrees of precision:
      year, year-month, date, or dateTime (all ISO 8601 format). Note 
      that the dateTime type does not allow right-truncation (i.e. omitting 
      seconds). An ordinal era may be referenced via URI, and a decimal value
      can be used to indicate the distance from the scale origin (e.g. UNIX time,  
      GPS calendar).
      </documentation>
                </annotation>
                <union memberTypes="dateTime date gYearMonth gYear anyURI decimal" />
            </simpleType>
            <!-- ================================================================== -->
            <simpleType name="TimeIndeterminateValueType">
                <annotation>
                    <documentation xml:lang="en">
        This enumerated data type specifies values for indeterminate positions.
      </documentation>
                </annotation>
                <restriction base="string">
                    <enumeration value="after" />
                    <enumeration value="before" />
                    <enumeration value="now" />
                    <enumeration value="unknown" />
                </restriction>
            </simpleType>
            <!-- ===================================== -->
            <simpleType name="TimeDurationType">
                <annotation>
                    <documentation xml:lang="en">
      Base type for describing temporal length or distance. The value space is further 
      constrained by subtypes that conform to the ISO 8601 or ISO 11404 standards.
      </documentation>
                </annotation>
                <union memberTypes="duration decimal" />
            </simpleType>
            <!-- ===========================================================
	GML profile elements and types from grids.xsd	============================================================== -->
            <element name="Grid" type="gml:GridType" substitutionGroup="gml:_Geometry" />
            <!-- =========================================================== -->
            <complexType name="GridType">
                <annotation>
                    <documentation>Implicitly defines an unrectified grid, which is a network composed of two or more sets of equally spaced parallel lines in which the members of each set intersect the members of the other sets at right angles. This profile does not extend AbstractGeometryType, so it defines the srsName attribute.</documentation>
                </annotation>
                <complexContent>
                    <extension base="gml:AbstractGeometryType">
                        <sequence>
                            <element name="limits" type="gml:GridLimitsType" />
                            <element name="axisName" type="string" maxOccurs="unbounded" />
                        </sequence>
                        <attribute name="dimension" type="positiveInteger" use="required" />
                    </extension>
                </complexContent>
            </complexType>
            <!-- =========================================================== -->
            <complexType name="GridLimitsType">
                <sequence>
                    <element name="GridEnvelope" type="gml:GridEnvelopeType" />
                </sequence>
            </complexType>
            <!-- =========================================================== -->
            <complexType name="GridEnvelopeType">
                <annotation>
                    <documentation>Provides grid coordinate values for the diametrically opposed corners of an envelope that bounds a section of grid. The value of a single coordinate is the number of offsets from the origin of the grid in the direction of a specific axis.</documentation>
                </annotation>
                <sequence>
                    <element name="low" type="gml:integerList" />
                    <element name="high" type="gml:integerList" />
                </sequence>
            </complexType>
            <!-- =========================================================== -->
            <element name="RectifiedGrid" type="gml:RectifiedGridType" substitutionGroup="gml:Grid" />
            <!-- =========================================================== -->
            <complexType name="RectifiedGridType">
                <annotation>
                    <documentation>A rectified grid has an origin and vectors that define its post locations.</documentation>
                </annotation>
                <complexContent>
                    <extension base="gml:GridType">
                        <sequence>
                            <element name="origin" type="gml:PointType" />
                            <element name="offsetVector" type="gml:VectorType" maxOccurs="unbounded" />
                        </sequence>
                    </extension>
                </complexContent>
            </complexType>
            <!-- ===========================================================
	GML profile elements and types from geometryBasic2d.xsd, for Polygon 	============================================================== -->
            <element name="_Surface" type="gml:AbstractSurfaceType" abstract="true" substitutionGroup="gml:_GeometricPrimitive">
                <annotation>
                    <documentation>The "_Surface" element is the abstract head of the substituition group for all (continuous) surface elements.</documentation>
                </annotation>
            </element>
            <!-- =========================================================== -->
            <complexType name="AbstractSurfaceType">
                <annotation>
                    <documentation>
				An abstraction of a surface to support the different levels of complexity. A surface is always a continuous region of a plane.
			</documentation>
                </annotation>
                <complexContent>
                    <extension base="gml:AbstractGeometricPrimitiveType" />
                </complexContent>
            </complexType>
            <!-- =========================================================== -->
            <element name="Polygon" type="gml:PolygonType" substitutionGroup="gml:_Surface" />
            <!-- =========================================================== -->
            <complexType name="PolygonType">
                <annotation>
                    <documentation>A Polygon is a special surface that is defined by a single surface patch. The boundary of this patch is coplanar and the polygon uses planar interpolation in its interior. It is backwards compatible with the Polygon of GML 2, GM_Polygon of ISO 19107 is implemented by PolygonPatch.</documentation>
                </annotation>
                <complexContent>
                    <extension base="gml:AbstractSurfaceType">
                        <sequence>
                            <element ref="gml:exterior" minOccurs="0" />
                            <element ref="gml:interior" minOccurs="0" maxOccurs="unbounded" />
                        </sequence>
                    </extension>
                </complexContent>
            </complexType>
            <!-- =========================================================== -->
            <element name="exterior" type="gml:AbstractRingPropertyType">
                <annotation>
                    <documentation>A boundary of a surface consists of a number of rings. In the normal 2D case, one of these rings is distinguished as being the exterior boundary. In a general manifold this is not always possible, in which case all boundaries shall be listed as interior boundaries, and the exterior will be empty.</documentation>
                </annotation>
            </element>
            <!-- =========================================================== -->
            <element name="interior" type="gml:AbstractRingPropertyType">
                <annotation>
                    <documentation>A boundary of a surface consists of a number of rings. The "interior" rings seperate the surface / surface patch from the area enclosed by the rings.</documentation>
                </annotation>
            </element>
            <!-- =========================================================== -->
            <complexType name="AbstractRingPropertyType">
                <annotation>
                    <documentation>
			        Encapsulates a ring to represent the surface boundary property of a surface.
			</documentation>
                </annotation>
                <sequence>
                    <element ref="gml:LinearRing" />
                </sequence>
            </complexType>
            <!-- =========================================================== -->
            <element name="_Ring" type="gml:AbstractRingType" abstract="true" substitutionGroup="gml:_Geometry">
                <annotation>
                    <documentation>The "_Ring" element is the abstract head of the substituition group for all closed boundaries of a surface patch.</documentation>
                </annotation>
            </element>
            <!-- =========================================================== -->
            <complexType name="AbstractRingType" abstract="true">
                <annotation>
                    <documentation>
				An abstraction of a ring to support surface boundaries of different complexity.
			</documentation>
                </annotation>
                <complexContent>
                    <extension base="gml:AbstractGeometryType" />
                </complexContent>
            </complexType>
            <!-- =========================================================== -->
            <element name="LinearRing" type="gml:LinearRingType" substitutionGroup="gml:_Ring" />
            <!-- =========================================================== -->
            <complexType name="LinearRingType">
                <annotation>
                    <documentation>A LinearRing is defined by four or more coordinate tuples, with linear interpolation between them; the first and last coordinates must be coincident.</documentation>
                </annotation>
                <complexContent>
                    <extension base="gml:AbstractRingType">
                        <sequence>
                            <annotation>
                                <documentation>This GML profile supports only one way to specify the control points of a linear ring: a sequence of "pos" (DirectPositionType).</documentation>
                            </annotation>
                            <element ref="gml:pos" minOccurs="4" maxOccurs="unbounded" />
                        </sequence>
                    </extension>
                </complexContent>
            </complexType>
        </schema>
        <xs:schema targetNamespace="http://www.opengis.net/ogc" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
            <xs:element name="ServiceExceptionReport">
                <xs:annotation>
                    <xs:documentation> The ServiceExceptionReport element contains one or more
                ServiceException elements that describe a service exception. </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="ServiceException" type="ogc:ServiceExceptionType" minOccurs="0" maxOccurs="unbounded">
                            <xs:annotation>
                                <xs:documentation> The Service exception element is used to describe a
                            service exception. </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                    <xs:attribute name="version" type="xs:string" fixed="1.2.0" />
                </xs:complexType>
            </xs:element>
            <xs:complexType name="ServiceExceptionType">
                <xs:annotation>
                    <xs:documentation> The ServiceExceptionType type defines the ServiceException element.
                The content of the element is an exception message that the service wished to convey
                to the client application. </xs:documentation>
                </xs:annotation>
                <xs:simpleContent>
                    <xs:extension base="xs:string">
                        <xs:attribute name="code" type="xs:string">
                            <xs:annotation>
                                <xs:documentation> A service may associate a code with an exception by using
                            the code attribute. </xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                        <xs:attribute name="locator" type="xs:string" use="optional">
                            <xs:annotation>
                                <xs:documentation> The locator attribute may be used by a service to
                            indicate to a client where in the client's request an exception was
                            encountered. If the request included a 'handle' attribute, this may be
                            used to identify the offending component of the request. Otherwise the
                            service may try to use other means to locate the exception such as line
                            numbers or byte offset from the begining of the request, etc ...
                        </xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                    </xs:extension>
                </xs:simpleContent>
            </xs:complexType>
        </xs:schema>
        <xsd:schema targetNamespace="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:nc="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2" elementFormDefault="qualified">
            <!-- XML encoding of Netcdf container object -->
            <xsd:element name="netcdf">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:choice minOccurs="0">
                            <xsd:element name="readMetadata" />
                            <xsd:element name="explicit" />
                        </xsd:choice>
                        <xsd:choice minOccurs="0" maxOccurs="unbounded">
                            <xsd:element ref="nc:group" />
                            <xsd:element ref="nc:dimension" />
                            <xsd:element ref="nc:variable" />
                            <xsd:element ref="nc:attribute" />
                            <xsd:element ref="nc:remove" />
                        </xsd:choice>
                        <xsd:element ref="nc:aggregation" minOccurs="0" />
                    </xsd:sequence>
                    <xsd:attribute name="location" type="xsd:anyURI" />
                    <xsd:attribute name="id" type="xsd:string" />
                    <xsd:attribute name="title" type="xsd:string" />
                    <xsd:attribute name="enhance" type="xsd:boolean" />
                    <xsd:attribute name="addRecords" type="xsd:boolean" />
                    <!-- for aggregations -->
                    <xsd:attribute name="ncoords" type="xsd:string" />
                    <xsd:attribute name="coordValue" type="xsd:string" />
                </xsd:complexType>
            </xsd:element>
            <!-- XML encoding of group object -->
            <xsd:element name="group">
                <xsd:complexType>
                    <xsd:choice minOccurs="0" maxOccurs="unbounded">
                        <xsd:element ref="nc:dimension" />
                        <xsd:element ref="nc:variable" />
                        <xsd:element ref="nc:attribute" />
                        <xsd:element ref="nc:group" />
                        <xsd:element ref="nc:remove" />
                    </xsd:choice>
                    <xsd:attribute name="name" type="xsd:string" use="required" />
                    <xsd:attribute name="orgName" type="xsd:string" />
                </xsd:complexType>
            </xsd:element>
            <!-- XML encoding of dimension object -->
            <xsd:element name="dimension">
                <xsd:complexType>
                    <xsd:attribute name="name" type="xsd:token" use="required" />
                    <xsd:attribute name="length" type="xsd:nonNegativeInteger" />
                    <xsd:attribute name="isUnlimited" type="xsd:boolean" default="false" />
                    <xsd:attribute name="isVariableLength" type="xsd:boolean" default="false" />
                    <xsd:attribute name="isShared" type="xsd:boolean" default="true" />
                    <xsd:attribute name="orgName" type="xsd:string" />
                </xsd:complexType>
            </xsd:element>
            <!-- XML encoding of Variable object -->
            <xsd:element name="variable">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element ref="nc:attribute" minOccurs="0" maxOccurs="unbounded" />
                        <xsd:element ref="nc:values" minOccurs="0" />
                        <xsd:element ref="nc:variable" minOccurs="0" maxOccurs="unbounded" />
                        <xsd:element ref="nc:logicalView" minOccurs="0" />
                        <xsd:element ref="nc:remove" minOccurs="0" maxOccurs="unbounded" />
                    </xsd:sequence>
                    <xsd:attribute name="name" type="xsd:token" use="required" />
                    <xsd:attribute name="type" type="nc:DataType" />
                    <xsd:attribute name="shape" type="xsd:token" />
                    <xsd:attribute name="orgName" type="xsd:string" />
                </xsd:complexType>
            </xsd:element>
            <!-- XML encoding of values -->
            <xsd:element name="values">
                <xsd:complexType mixed="true">
                    <xsd:attribute name="start" type="xsd:float" />
                    <xsd:attribute name="increment" type="xsd:float" />
                    <xsd:attribute name="npts" type="xsd:int" />
                    <xsd:attribute name="separator" type="xsd:string" />
                </xsd:complexType>
            </xsd:element>
            <!-- XML encoding of Attribute object -->
            <xsd:element name="attribute">
                <xsd:complexType mixed="true">
                    <xsd:attribute name="name" type="xsd:token" use="required" />
                    <xsd:attribute name="type" type="nc:DataType" default="String" />
                    <xsd:attribute name="value" type="xsd:string" />
                    <xsd:attribute name="separator" type="xsd:string" />
                    <xsd:attribute name="orgName" type="xsd:string" />
                </xsd:complexType>
            </xsd:element>
            <!-- possible data types for Variable, Attribute objects -->
            <xsd:simpleType name="DataType">
                <xsd:restriction base="xsd:token">
                    <xsd:enumeration value="byte" />
                    <xsd:enumeration value="char" />
                    <xsd:enumeration value="short" />
                    <xsd:enumeration value="int" />
                    <xsd:enumeration value="long" />
                    <xsd:enumeration value="float" />
                    <xsd:enumeration value="double" />
                    <xsd:enumeration value="String" />
                    <xsd:enumeration value="string" />
                    <xsd:enumeration value="Structure" />
                </xsd:restriction>
            </xsd:simpleType>
            <!-- Dataset **********************************************************************-->
            <xsd:element name="remove">
                <xsd:complexType>
                    <xsd:attribute name="type" type="nc:ObjectType" use="required" />
                    <xsd:attribute name="name" type="xsd:string" use="required" />
                </xsd:complexType>
            </xsd:element>
            <xsd:simpleType name="ObjectType">
                <xsd:restriction base="xsd:string">
                    <xsd:enumeration value="attribute" />
                    <xsd:enumeration value="dimension" />
                    <xsd:enumeration value="variable" />
                    <xsd:enumeration value="group" />
                </xsd:restriction>
            </xsd:simpleType>
            <!-- aggregation  -->
            <xsd:element name="aggregation">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="variableAgg" minOccurs="0" maxOccurs="unbounded">
                            <xsd:complexType>
                                <xsd:attribute name="name" type="xsd:string" use="required" />
                            </xsd:complexType>
                        </xsd:element>
                        <xsd:element ref="nc:netcdf" minOccurs="0" maxOccurs="unbounded" />
                        <xsd:element name="scan" minOccurs="0" maxOccurs="unbounded">
                            <xsd:complexType>
                                <xsd:attribute name="location" type="xsd:string" use="required" />
                                <xsd:attribute name="suffix" type="xsd:string" />
                                <xsd:attribute name="dateFormatMark" type="xsd:string" />
                                <xsd:attribute name="enhance" type="xsd:boolean" />
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                    <xsd:attribute name="dimName" type="xsd:token" />
                    <xsd:attribute name="type" type="nc:AggregationType" use="required" />
                    <xsd:attribute name="recheckEvery" type="xsd:string" />
                    <xsd:attribute name="forecastDate" type="xsd:string" />
                    <xsd:attribute name="forecastDateVariable" type="xsd:string" />
                    <xsd:attribute name="forecastOffset" type="xsd:string" />
                    <xsd:attribute name="forecastTimeOffset" type="xsd:string" />
                    <xsd:attribute name="referenceDateVariable" type="xsd:string" />
                </xsd:complexType>
            </xsd:element>
            <!-- type of aggregation -->
            <xsd:simpleType name="AggregationType">
                <xsd:restriction base="xsd:string">
                    <xsd:enumeration value="forecastModelRun" />
                    <xsd:enumeration value="joinExisting" />
                    <xsd:enumeration value="joinNew" />
                    <xsd:enumeration value="union" />
                </xsd:restriction>
            </xsd:simpleType>
            <!-- logical view  -->
            <xsd:element name="logicalView">
                <xsd:complexType>
                    <xsd:attribute name="section" type="xsd:token" use="optional" />
                </xsd:complexType>
            </xsd:element>
        </xsd:schema>
        <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:lin="http://datafed.net/xs/Lineage" xmlns:ncml="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2" xmlns:wcs="http://www.opengis.net/wcs" targetNamespace="http://datafed.net/xs/wcs" xmlns="http://datafed.net/xs/wcs">
            <xs:import namespace="http://datafed.net/xs/Lineage" schemaLocation="Lineage.xsd" />
            <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="OpenGIS/xlink/1.0.0/xlinks.xsd" />
            <xs:import namespace="http://www.opengis.net/gml" schemaLocation="OpenGIS/WCS/1.0.0/gml4wcs.xsd" />
            <xs:import namespace="http://www.opengis.net/ogc" schemaLocation="OpenGIS/WCS/1.0.0/OGC-exception.xsd" />
            <xs:import namespace="http://www.opengis.net/wcs" schemaLocation="OpenGIS/WCS/1.0.0/values.xsd" />
            <xs:import namespace="http://www.opengis.net/wcs" schemaLocation="OpenGIS/WCS/1.0.0/owsBase.xsd" />
            <xs:import namespace="http://www.opengis.net/wcs" schemaLocation="OpenGIS/WCS/1.0.0/wcsCapabilities.xsd" />
            <xs:import namespace="http://www.opengis.net/wcs" schemaLocation="OpenGIS/WCS/1.0.0/describeCoverage.xsd" />
            <xs:import namespace="http://www.opengis.net/wcs" schemaLocation="OpenGIS/WCS/1.0.0/getCoverage.xsd" />
            <xs:import namespace="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2" schemaLocation="ncml-2.2.xsd" />
            <xs:element name="GetCoverageResponse" type="GetCoverageResponseType" />
            <xs:complexType name="GetCoverageResponseType">
                <xs:all>
                    <xs:element name="data" type="xs:anyURI" />
                    <xs:element name="content_type" type="xs:string" />
                    <xs:element name="format" type="xs:string" />
                    <xs:element name="domainSubset" type="wcs:DomainSubsetType" minOccurs="0" />
                    <xs:element name="transp_colors" type="xs:string" minOccurs="0" />
                    <xs:element name="bgcolor" type="xs:string" minOccurs="0" />
                    <xs:element ref="ncml:netcdf" minOccurs="0" />
                    <xs:element ref="lin:Statistics" minOccurs="0" />
                    <xs:element ref="lin:LineageList" minOccurs="0" />
                </xs:all>
            </xs:complexType>
        </xs:schema>
        <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://datafed.net/xs/Lineage" xmlns="http://datafed.net/xs/Lineage">
            <xs:element name="LineageList" type="LineageListType" />
            <xs:complexType name="LineageListType">
                <xs:sequence>
                    <xs:any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded" />
                </xs:sequence>
            </xs:complexType>
            <xs:element name="LineageComment" type="LineageComment" />
            <xs:complexType name="LineageComment">
                <xs:sequence>
                    <xs:element name="subject" type="xs:string" />
                    <xs:element name="body" type="xs:string" />
                </xs:sequence>
            </xs:complexType>
            <xs:element name="Statistics" type="Statistics" />
            <xs:complexType name="Statistics">
                <xs:sequence>
                    <xs:element name="sum" type="xs:float" default="0" />
                    <xs:element name="avg" type="xs:float" default="NaN" />
                    <xs:element name="min" type="xs:float" default="NaN" />
                    <xs:element name="max" type="xs:float" default="NaN" />
                    <xs:element name="null_count" type="xs:int" default="0" />
                    <xs:element name="total_count" type="xs:int" default="0" />
                </xs:sequence>
            </xs:complexType>
        </xs:schema>
    </types>
    <message name="GetCapabilitiesIn">
        <part name="parameters" element="wcs:GetCapabilities" />
    </message>
    <message name="GetCapabilitiesOut">
        <part name="parameters" element="wcs:WCS_Capabilities" />
    </message>
    <message name="DescribeCoverageIn">
        <part name="parameters" element="wcs:DescribeCoverage" />
    </message>
    <message name="DescribeCoverageOut">
        <part name="parameters" element="wcs:CoverageDescription" />
    </message>
    <message name="GetCoverageIn">
        <part name="parameters" element="wcs:GetCoverage" />
    </message>
    <message name="GetCoverageOut">
        <part name="parameters" element="dfc:GetCoverageResponse" />
    </message>
    <portType name="WCSSoap">
        <operation name="GetCapabilities">
            <input message="dfc:GetCapabilitiesIn" />
            <output message="dfc:GetCapabilitiesOut" />
        </operation>
        <operation name="DescribeCoverage">
            <input message="dfc:DescribeCoverageIn" />
            <output message="dfc:DescribeCoverageOut" />
        </operation>
        <operation name="GetCoverage">
            <input message="dfc:GetCoverageIn" />
            <output message="dfc:GetCoverageOut" />
        </operation>
    </portType>
    <binding name="WCSSoap" type="dfc:WCSSoap">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
        <operation name="GetCapabilities">
            <documentation>Retrieves the catalog of parameters.</documentation>
            <soap:operation soapAction="http://datafed.net/WCS/GetCapabilities" style="document" />
            <input>
                <soap:body use="literal" />
            </input>
            <output>
                <soap:body use="literal" />
            </output>
        </operation>
        <operation name="DescribeCoverage">
            <documentation>Describes the coverage: data type, dimensions and extents, available formats etc.</documentation>
            <soap:operation soapAction="http://datafed.net/WCS/DescribeCoverage" style="document" />
            <input>
                <soap:body use="literal" />
            </input>
            <output>
                <soap:body use="literal" />
            </output>
        </operation>
        <operation name="GetCoverage">
            <documentation>GetCoverage Retrieves the data.</documentation>
            <soap:operation soapAction="http://datafed.net/WCS/GetCoverage" style="document" />
            <input>
                <soap:body use="literal" />
            </input>
            <output>
                <soap:body use="literal" />
            </output>
        </operation>
    </binding>
    <service name="WCS">
        <port name="WCSSoap" binding="dfc:WCSSoap">
            <soap:address location="http://webapps.datafed.net/WCS.asmx" />
        </port>
    </service>
</definitions>