<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:eop="http://www.opengis.net/eop/2.0" xmlns:opt="http://www.opengis.net/opt/2.0" targetNamespace="http://www.opengis.net/opt/2.0" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.0.0">
    <annotation>
        <documentation>Optical Products application schema.
        
        Earth Observation Metadata profile of Observations and Measurements is an OGC Standard.
        Copyright (c) 2013 Open Geospatial Consortium. 
        To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
        </documentation>
    </annotation>
    <import namespace="http://www.opengis.net/gml/3.2" schemaLocation="http://schemas.opengis.net/gml/3.2.1/gml.xsd"/>
    <import namespace="http://www.opengis.net/eop/2.0" schemaLocation="eop.xsd"/>
    <import namespace="http://www.opengis.net/ows/2.0" schemaLocation="http://schemas.opengis.net/ows/2.0/owsAll.xsd"/>
    <element name="EarthObservation" substitutionGroup="eop:EarthObservation" type="opt:EarthObservationType">
        <annotation>
            <documentation>eop root element for Optical Earth Observation Product description</documentation>
        </annotation>
    </element>
    <complexType name="EarthObservationType">
        <complexContent>
            <extension base="eop:EarthObservationType"/>
        </complexContent>
    </complexType>
    <complexType name="EarthObservationPropertyType">
        <sequence minOccurs="0">
            <element ref="opt:EarthObservation"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>
    <element name="EarthObservationResult" substitutionGroup="eop:EarthObservationResult" type="opt:EarthObservationResultType">
        <annotation>
            <documentation>Extends EarthObservationResult for Optical products</documentation>
        </annotation>
    </element>
    <complexType name="EarthObservationResultType">
        <complexContent>
            <extension base="eop:EarthObservationResultType">
                <sequence>
                    <element maxOccurs="1" minOccurs="0" name="cloudCoverPercentage" type="gml:MeasureType">
                        <annotation>
                            <documentation>Must be expressed in percents</documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="1" minOccurs="0" name="cloudCoverPercentageAssessmentConfidence" type="gml:MeasureType">
                        <annotation>
                            <documentation>Cloud cover assessment confidence. Expressed in percents.</documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="1" minOccurs="0" name="cloudCoverPercentageQuotationMode" type="eop:EarthObservationResultPropertyType">
                        <annotation>
                            <documentation>Indicator to know how the cloud cover percentage has been calculated</documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="1" minOccurs="0" name="snowCoverPercentage" type="gml:MeasureType">
                        <annotation>
                            <documentation>Must be expressed in percents</documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="1" minOccurs="0" name="snowCoverPercentageAssessmentConfidence" type="gml:MeasureType">
                        <annotation>
                            <documentation>Snow cover assessment confidence. Expressed in percents.</documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="1" minOccurs="0" name="snowCoverPercentageQuotationMode" type="eop:EarthObservationResultPropertyType">
                        <annotation>
                            <documentation>Indicator to know how the snow cover percentage has been calculated</documentation>
                        </annotation>
                    </element>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
    <complexType name="EarthObservationResultPropertyType">
        <sequence minOccurs="0">
            <element ref="opt:EarthObservationResult"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>
    <simpleType name="PercentageCoverQuotationModeValueType">
        <union memberTypes="opt:PercentageCoverQuotationModeValueEnumerationType opt:PercentageCoverQuotationModeValueOtherType"/>
    </simpleType>
    <simpleType name="PercentageCoverQuotationModeValueEnumerationType">
        <restriction base="string">
            <enumeration value="AUTOMATIC">
                <annotation>
                    <documentation>Cloud cover percentage has been calculated automatically
</documentation>
                </annotation>
            </enumeration>
            <enumeration value="MANUAL">
                <annotation>
                    <documentation>Cloud cover percentage has been calculated manually</documentation>
                </annotation>
            </enumeration>
        </restriction>
    </simpleType>
    <simpleType name="PercentageCoverQuotationModeValueOtherType">
        <restriction base="string">
            <pattern value="other: \w{2,}"/>
        </restriction>
    </simpleType>
</schema>
