<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:lmb="http://www.opengis.net/lmb/2.0" xmlns:eop="http://www.opengis.net/eop/2.0" targetNamespace="http://www.opengis.net/lmb/2.0" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.0.0">
    <annotation>
        <documentation>Limb looking 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="EarthObservationEquipment" substitutionGroup="eop:EarthObservationEquipment" type="lmb:EarthObservationEquipmentType">
        <annotation>
            <documentation>Extends EOP EarthObservationEquipment for Limb Looking products.</documentation>
        </annotation>
    </element>
    <complexType name="EarthObservationEquipmentType">
        <complexContent>
            <extension base="eop:EarthObservationEquipmentType">
                <sequence>
                    <element name="acquisitionParameters" type="eop:AcquisitionPropertyType">
                        <annotation>
                            <documentation>Uses the extended Acquisition type</documentation>
                        </annotation>
                    </element>
                    <element name="sensor" type="eop:SensorPropertyType">
                        <annotation>
                            <documentation>Uses the extended Sensor type</documentation>
                        </annotation>
                    </element>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
    <complexType name="EarthObservationEquipmentPropertyType">
        <sequence minOccurs="0">
            <element ref="lmb:EarthObservationEquipment"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>
    <element name="Footprint" substitutionGroup="eop:Footprint" type="lmb:FootprintType">
        <annotation>
            <documentation>Extends EOP footprint for limb looking profiles</documentation>
        </annotation>
    </element>
    <complexType name="FootprintType">
        <complexContent>
            <extension base="eop:FootprintType">
                <sequence>
                    <element maxOccurs="1" minOccurs="0" name="maximumAltitude" type="gml:MeasureType">
                        <annotation>
                            <documentation>Upper bound of measurements in vertical dimension. Must be gml Measure
</documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="1" minOccurs="0" name="minimumAltitude" type="gml:MeasureType">
                        <annotation>
                            <documentation>Lower bound of measurements in vertical dimension. Must be gml Measure
</documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="1" minOccurs="0" name="nominalTrack" type="gml:MultiCurvePropertyType">
                        <annotation>
                            <documentation>A geometry of type GM_Multicurve is used to define the nominal track on the earths surface. This track is essentially a line that is representative of the product but does not include points for every value. 
The use of GM_MultiCurve allows for multiple lines and breaks in lines.</documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="1" minOccurs="0" name="occultationPoints" type="gml:MultiPointPropertyType">
                        <annotation>
                            <documentation>A set of unstructured occultation points (e.g. with non-astronomical bodies like GPS satellites) at which atmospheric profiles are available within the product.</documentation>
                        </annotation>
                    </element>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
    <complexType name="FootprintPropertyType">
        <sequence minOccurs="0">
            <element ref="lmb:Footprint"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>
    <element name="EarthObservation" substitutionGroup="eop:EarthObservation" type="lmb:EarthObservationType">
        <annotation>
            <documentation>Extends eop:EarthObservation for Limb Looking products</documentation>
        </annotation>
    </element>
    <complexType name="EarthObservationType">
        <complexContent>
            <extension base="eop:EarthObservationType"/>
        </complexContent>
    </complexType>
    <complexType name="EarthObservationPropertyType">
        <sequence minOccurs="0">
            <element ref="lmb:EarthObservation"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>
    <element name="Sensor" substitutionGroup="eop:Sensor" type="lmb:SensorType">
        <annotation>
            <documentation>Extends EOP Sensor for Limb Looking products.</documentation>
        </annotation>
    </element>
    <complexType name="SensorType">
        <complexContent>
            <extension base="eop:SensorType">
                <sequence>
                    <element maxOccurs="1" minOccurs="0" name="measurementType" type="lmb:MeasurementTypeValueType">
                        <annotation>
                            <documentation>Measurement type - ABSORPTION or EMISSION</documentation>
                        </annotation>
                    </element>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
    <complexType name="SensorPropertyType">
        <sequence>
            <element ref="lmb:Sensor"/>
        </sequence>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>
    <element name="Acquisition" substitutionGroup="eop:Acquisition" type="lmb:AcquisitionType">
        <annotation>
            <documentation>xtension of eop:Acquisition, extended for LMB to add observation mode.</documentation>
        </annotation>
    </element>
    <complexType name="AcquisitionType">
        <complexContent>
            <extension base="eop:AcquisitionType">
                <sequence>
                    <element maxOccurs="1" minOccurs="0" name="observationMode" type="string">
                        <annotation>
                            <documentation>Observation mode used in acquisition. e.g 'UTLS-1' is one of the seven MIPAS observation modes which determine the sampling regime. Not constrained to codelist at the limb-looking level as these modes are instrument specific.</documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="1" minOccurs="0" name="verticalResolution" type="gml:MeasureType">
                        <annotation>
                            <documentation>Vertical spacing of data (if regular)</documentation>
                        </annotation>
                    </element>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
    <complexType name="AcquisitionPropertyType">
        <sequence>
            <element ref="lmb:Acquisition"/>
        </sequence>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>
    <simpleType name="MeasurementTypeValueType">
        <restriction base="string">
            <enumeration value="ABSORPTION">
                <annotation>
                    <documentation>Indicates absorbed radiation is measured</documentation>
                </annotation>
            </enumeration>
            <enumeration value="EMISSION">
                <annotation>
                    <documentation>Indicates emitted radiation is measured</documentation>
                </annotation>
            </enumeration>
        </restriction>
    </simpleType>
</schema>
