<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml/3.2"
        xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:om="http://www.opengis.net/om/2.0"
        xmlns:gmi="http://www.isotc211.org/2005/gmi" xmlns:espas="http://schemas.espas-fp7.eu/2.1"
        targetNamespace="http://schemas.espas-fp7.eu/2.1"
        elementFormDefault="qualified" attributeFormDefault="unqualified"
        version="1.0"><!-- Schema auto-generated by FullMoon, applying rule suite xmi11ea -->
    <annotation>
        <documentation>[WARN-A001] - No package description in UML model</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.isotc211.org/2005/gmi" schemaLocation="http://www.isotc211.org/2005/gmi/gmi.xsd"/>
    <import namespace="http://www.isotc211.org/2005/gmd" schemaLocation="http://schemas.opengis.net/iso/19139/20070417/gmd/gmd.xsd"/>
    <import namespace="http://www.opengis.net/om/2.0" schemaLocation="http://schemas.opengis.net/om/2.0/observation.xsd"/>
    <include schemaLocation="utilities.xsd"/>

<!-- ESPAS_Computation -->
    <element name="ESPAS_Computation" substitutionGroup="espas:ESPAS_Process" type="espas:ESPAS_ComputationType">
        <annotation>
            <documentation>-- Definition --
                A process component which involves only numerical computation.

                -- Description --
                An instance of ESPAS_Computation provides a) a description of a process component which does not
                interact with the feature of interest and b) description of the anticipated output and required input.
            </documentation>
        </annotation>
    </element>
    <complexType name="ESPAS_ComputationType">
        <complexContent>
            <extension base="espas:ESPAS_ProcessType">
                <sequence>
                    <element name="name" type="string">
                        <annotation>
                            <documentation>-- Definition --
                                Name of the computation component.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="1" minOccurs="0" name="version" type="string">
                        <annotation>
                            <documentation>-- Definition --
                                Version of the computation component.
                            </documentation>
                        </annotation>
                    </element>
                    <element name="type" type="espas:xlinkHref_PropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Type of computation from a controlled vocabulary.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="unbounded" minOccurs="0" name="documentation"
                             type="espas:ESPAS_Citation_ExtendedPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Reference to documentation describing the computation component.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="unbounded" minOccurs="0" name="softwareReference"
                             type="espas:ESPAS_Citation_ExtendedPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Reference to document describing processing software.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="unbounded" minOccurs="0" name="processingInput"
                             type="espas:ESPAS_InputOutput_ExtendedPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Description of a required input of ESPAS_Computation.

                                .-- Description --
                                The description does not involve the values of the input data. The actual values, if
                                required, shall be stored in &lt;i&gt;OM_Observation.parameter&amp;gt;NamedValue&lt;/i&gt;
                                as they are specific to the event of the observation and not to the applied process (
                                see MO_Observation constraint).
                            </documentation>
                        </annotation>
                    </element>
                    <element name="processingOutput" maxOccurs="1" minOccurs="0"
                             type="espas:ESPAS_InputOutputPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Description of ESPAS_Computation output.

                                -- Description --
                                NOTE The description does not involve the actual values of the output data.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="unbounded" minOccurs="0" name="relatedParty"
                             type="espas:ESPAS_ResponsiblePartyInfo_ExtendedPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Individual or organisation related to ESPAS_Computation.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="unbounded" minOccurs="0" name="algorithm" type="espas:LE_Algorithm_ExtendedPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Algorith(s) on which the computation step is based on.
                            </documentation>
                        </annotation>
                    </element>
                </sequence>
                <attribute name="deleted" type="espas:deleteType"/>
            </extension>
        </complexContent>
    </complexType>
    <complexType name="ESPAS_ComputationPropertyType">
        <sequence minOccurs="0">
            <element ref="espas:ESPAS_Computation"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>

    <!-- ESPAS_Acquisition -->
    <element name="ESPAS_Acquisition" substitutionGroup="espas:ESPAS_Process" type="espas:ESPAS_AcquisitionType">
        <annotation>
            <documentation>-- Definition --
                A process component which interacts with the feature of interest (e.g. an atmospheric column) to provide
                a result.
            </documentation>
        </annotation>
    </element>
    <complexType name="ESPAS_AcquisitionType">
        <complexContent>
            <extension base="espas:ESPAS_ProcessType">
                <sequence>
                    <element maxOccurs="unbounded" minOccurs="0" name="documentation"
                             type="espas:ESPAS_Citation_ExtendedPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Reference to documentation describing the acquisition component.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="unbounded" minOccurs="0" name="instrumentPlatformPair"
                             type="espas:ESPAS_InstrumentPlatformPair_ExtendedPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Notification of the platform and the mounted on it instrument for the specified
                                acquisition component.
                            </documentation>
                        </annotation>
                    </element>
                    <!-- New  start-->
                    <element maxOccurs="unbounded" minOccurs="0" name="instrumentModePair"
                             type="espas:ESPAS_InstrumentOperationalModePair_ExtendedPropertyType"/>
                    <!-- New  end -->
                    <element maxOccurs="1" minOccurs="0" name="outputDescription"
                             type="espas:ESPAS_InputOutputPropertyType">
                        <annotation>
                            <documentation>-- Definition --EE
                                Description of the acquisition output.

                                -- Description --
                                NOTE The description does not involve the actual values of the output data.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="unbounded" minOccurs="0" name="relatedParty"
                             type="espas:ESPAS_ResponsiblePartyInfo_ExtendedPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Individual or organisation related to acquisition.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="unbounded" minOccurs="1" name="instrument"
                             type="espas:xlinkHref_PropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Instrument used in the acquisition component.

                                -- Description --

                                NOTE Any instance of MO_Acquisition shall have at least one instrument which might be
                                used in more than one acquisitions.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="unbounded" minOccurs="0" name="platform"
                             type="espas:xlinkHref_PropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Platform used in the acquisition component.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="unbounded" minOccurs="0" name="operation"
                             type="espas:xlinkHref_PropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Operation of a platform.
                            </documentation>
                        </annotation>
                    </element>
                </sequence>
                <attribute name="deleted" type="espas:deleteType"/>
            </extension>
        </complexContent>
    </complexType>
    <complexType name="ESPAS_AcquisitionPropertyType">
        <sequence minOccurs="0">
            <element ref="espas:ESPAS_Acquisition"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>

    <!-- ESPAS_Instrument -->
    <element name="ESPAS_Instrument" substitutionGroup="gml:AbstractFeature" type="espas:ESPAS_InstrumentType">
        <annotation>
            <documentation>-- Definition --
                Designations for the measuring instruments which interact with the feature of interest.

                -- Description --
                SOURCE [ ISO 19115-2:2009]
                NOTE An instance of ESPAS_Instrument class can be an aggregation of instruments.
            </documentation>
        </annotation>
    </element>
    <complexType name="ESPAS_InstrumentType">
        <complexContent>
            <extension base="gml:AbstractFeatureType">
                <sequence>
                    <element name="identifier" type="espas:ESPAS_IdentifierPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                External identifier of the instrument.
                            </documentation>
                        </annotation>
                    </element>
                    <element name="name" type="string">
                        <annotation>
                            <documentation>-- Definition --
                                Name of the instrument
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="1" minOccurs="0" name="description" type="string">
                        <annotation>
                            <documentation>-- Definition --
                                Textual description of the instrument.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="1" minOccurs="0" name="version" type="string">
                        <annotation>
                            <documentation>-- Definition --
                                version of the instrument.
                            </documentation>
                        </annotation>
                    </element>
                    <element name="type" type="espas:xlinkHref_PropertyType">
                        <annotation>
                            <appinfo>
                                <gml:defaultCodeSpace>#NOTES</gml:defaultCodeSpace>
                            </appinfo>
                            <documentation>-- Definition --
                                Type of instrument from a controlled vocabulary.
                            </documentation>
                        </annotation>
                    </element>
                    <!-- new start -->
                    <element maxOccurs="unbounded" minOccurs="0" name="operationalMode"
                             type="espas:ESPAS_InstrumentOperationalMode_ExtendedPropertyType"/>
                    <element maxOccurs="unbounded" minOccurs="0" name="URL" type="espas:URL_ExtendedPropertyType"/>
                    <!-- new end -->
                    <element maxOccurs="unbounded" minOccurs="0" name="documentation"
                             type="espas:ESPAS_Citation_ExtendedPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Reference to documentation describing the instrument.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="unbounded" minOccurs="0" name="relatedParty"
                             type="espas:ESPAS_ResponsiblePartyInfo_ExtendedPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Information regarding organisations and/or individuals related to instrument.
                            </documentation>
                        </annotation>
                    </element>
                </sequence>
                <attribute name="deleted" type="espas:deleteType"/>
            </extension>
        </complexContent>
    </complexType>
    <complexType name="ESPAS_InstrumentPropertyType">
        <sequence minOccurs="0">
            <element ref="espas:ESPAS_Instrument"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>

    <!-- ESPAS_CompositeProcess -->
    <element name="ESPAS_CompositeProcess" substitutionGroup="espas:ESPAS_Process"
             type="espas:ESPAS_CompositeProcessType">
        <annotation>
            <documentation>-- Definition --
                A process consisting of more than one components. A component shall be either of acquisition or
                computation type. The aggregation may include only acquisition or computation types, or both.
            </documentation>
        </annotation>
    </element>
    <complexType name="ESPAS_CompositeProcessType">
        <complexContent>
            <extension base="espas:ESPAS_ProcessType">
                <sequence>
                    <element maxOccurs="unbounded" minOccurs="0" name="documentation"
                             type="espas:ESPAS_Citation_ExtendedPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Reference to documentation describing the composite process.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="unbounded" minOccurs="0" name="relatedParty"
                             type="espas:ESPAS_ResponsiblePartyInfo_ExtendedPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Individual or organisation related to composite process.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="unbounded" minOccurs="0" name="computationComponent"
                             type="espas:xlinkHref_ExtendedPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                A component of computation type.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="unbounded" minOccurs="0" name="acquisitionComponent"
                             type="espas:xlinkHref_ExtendedPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                A component of acquisition type.
                            </documentation>
                        </annotation>
                    </element>
                </sequence>
                <attribute name="deleted" type="espas:deleteType"/>
            </extension>
        </complexContent>
    </complexType>
    <complexType name="ESPAS_CompositeProcessPropertyType">
        <sequence minOccurs="0">
            <element ref="espas:ESPAS_CompositeProcess"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>

    <!-- ESPAS_Platform -->
    <element name="ESPAS_Platform" substitutionGroup="gml:AbstractFeature" type="espas:ESPAS_PlatformType">
        <annotation>
            <documentation>-- Definition --
                A platform is an identifiable object which can either
                i)bring the acquisition instrument(s) to the appropriate environment (e.g aircraft, ground station);
                ii) create the appropriate environment for the acquisition instrument(s) ( e.g a cloud chamber) ; or
                iii) provide the appropriate operational conditions to the instruments (e.g a ground station provides
                electricity )
                in order to acquire the data according to the observation objectives.
            </documentation>
        </annotation>
    </element>
    <complexType name="ESPAS_PlatformType">
        <complexContent>
            <extension base="gml:AbstractFeatureType">
                <sequence>
                    <element name="identifier" type="espas:ESPAS_IdentifierPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                External identifier of the platform.
                            </documentation>
                        </annotation>
                    </element>
                    <element name="name" type="string">
                        <annotation>
                            <documentation>-- Definition --
                                Name of the platform.
                            </documentation>
                        </annotation>
                    </element>
                    <!-- new start -->
                    <element name="shortName" type="string"/>
                    <element maxOccurs="unbounded" minOccurs="0" name="URL" type="espas:URL_ExtendedPropertyType"/>
                    <!-- new end -->
                    <element maxOccurs="1" minOccurs="0" name="description" type="string">
                        <annotation>
                            <documentation>-- Definition --
                                Textual description of the platform.
                            </documentation>
                        </annotation>
                    </element>
                    <element name="type" type="espas:xlinkHref_PropertyType">
                        <annotation>
                            <appinfo>
                                <gml:defaultCodeSpace>#NOTES</gml:defaultCodeSpace>
                            </appinfo>
                            <documentation>--Definition--
                                Type of platform.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="unbounded" minOccurs="0" name="documentation"
                             type="espas:ESPAS_Citation_ExtendedPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Reference to documentation describing the platform.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="1" minOccurs="0" name="location" type="espas:ESPAS_LocationPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Location of the platform.

                                -- Description --
                                Location is only applicable to static platforms or geo-stationairy satellites.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="unbounded" minOccurs="0" name="relatedParty"
                             type="espas:ESPAS_ResponsiblePartyInfo_ExtendedPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Information regarding organisations and/or individuals related to platform.

                                -- Description --
                                NOTE A facility owning a platform can be described by relatedParty attribute.
                            </documentation>
                        </annotation>
                    </element>
                </sequence>
                <attribute name="deleted" type="espas:deleteType"/>
            </extension>
        </complexContent>
    </complexType>
    <complexType name="ESPAS_PlatformPropertyType">
        <sequence minOccurs="0">
            <element ref="espas:ESPAS_Platform"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>

    <!-- ESPAS_Process -->
    <element abstract="true" name="ESPAS_Process" type="espas:ESPAS_ProcessType">
        <annotation>
            <documentation>-- Definition --
                An abstract class without attributes and operations. It serves as the base class for all types of
                processes.
                -- Description --
                NOTE An instance of ESPAS_Process may consist of more than one components. A component shall be either
                an acquisition or a numerical computation.
                An acquisition type component interacts with the feature of interest /sampling feature (e.g. an
                atmospheric column, a specimen etc) to provide a result whereas a computation type involves only pure
                computation.
            </documentation>
        </annotation>
    </element>
    <complexType abstract="true" name="ESPAS_ProcessType">
        <!-- new start -->
        <sequence>
            <element name="identifier" type="espas:ESPAS_IdentifierPropertyType">
                <annotation>
                    <documentation>-- Definition --
                        External identifier of the process component (acquisition, computation or composite).
                    </documentation>
                </annotation>
            </element>
            <element maxOccurs="1" minOccurs="0" name="description" type="string">
                <annotation>
                    <documentation>-- Definition --
                        Textual description of the process component (acquisition, computation or composite).
                    </documentation>
                </annotation>
            </element>
            <element maxOccurs="unbounded" minOccurs="0" name="capability"
                     type="espas:ESPAS_ProcessCapability_ExtendedPropertyType"/>
            <element maxOccurs="1" minOccurs="0" name="permission" type="espas:xlinkHref_PropertyType">
                <annotation>
                    <documentation>-- Definition --
                        Restrictions on the access and use of observation's result.

                        -- Desription --
                        Restrictions on the access and use of the observation result are known without
                        navigating from the obseravtion to the result.

                    </documentation>
                </annotation>
            </element>
        </sequence>
        <!-- new end -->
    </complexType>
    <complexType name="ESPAS_ProcessPropertyType">
        <sequence minOccurs="0">
            <element ref="espas:ESPAS_Process"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>

    <!-- ESPAS_Operation -->
    <element name="ESPAS_Operation" substitutionGroup="gml:AbstractFeature" type="espas:ESPAS_OperationType">
        <annotation>
            <documentation>-- Definition --
                Information about a platform operation - e.g. flight of an aircraft - which needed for the data
                acquisition.

                -- Description --
                NOTE 1 The act of an observation using a specified acquisition procedure occurs during the operation of
                the platform involved in the data acquisition.

                EXAMPLE During the operation of ENVISAT satellite, the onboard AATSR (Advanced Along Track Scanning
                Radiometer) can acquire data needed for measuring the sea surface temperature

                NOTE 2 An instance of MO_Operation may describe the operation of more than one platforms.

                NOTE 3 An instance of MO_Operation class can be an aggregation of platform operations.
            </documentation>
        </annotation>
    </element>
    <complexType name="ESPAS_OperationType">
        <complexContent>
            <extension base="gml:AbstractFeatureType">
                <sequence>
                    <element name="identifier" type="espas:ESPAS_IdentifierPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                External identifier of the operation
                            </documentation>
                        </annotation>
                    </element>
                    <element name="name" type="string">
                        <annotation>
                            <documentation>-- Definition --
                                Name of the operation.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="1" minOccurs="0" name="description" type="string">
                        <annotation>
                            <documentation>-- Definition --
                                Textual description of the operation.
                            </documentation>
                        </annotation>
                    </element>
                    <element name="location" minOccurs="0" maxOccurs="1" type="espas:ESPAS_LocationPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Location of the platform operation.

                                -- Description --
                                EXAMPLE A flight line or a ship track for a platform such as an aircraft or a ship
                                respectively.
                            </documentation>
                        </annotation>
                    </element>
                    <element name="operationTime" minOccurs="0" maxOccurs="1" type="om:TimeObjectPropertyType">
                        <annotation>
                            <documentation>--Definition--
                                When the operation occurred.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="unbounded" minOccurs="0" name="documentation"
                             type="espas:ESPAS_Citation_ExtendedPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Reference to documentation describing the operation.
                            </documentation>
                        </annotation>
                    </element>
                    <element name="status" minOccurs="0" maxOccurs="1" type="espas:xlinkHref_PropertyType">
                        <annotation>
                            <appinfo>
                                <gml:defaultCodeSpace>#NOTES</gml:defaultCodeSpace>
                            </appinfo>
                            <documentation>-- Definition --
                                Status of the platform operation.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="unbounded" minOccurs="0" name="relatedParty"
                             type="espas:ESPAS_ResponsiblePartyInfo_ExtendedPropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                Individual or organisation related to platform operation.
                            </documentation>
                        </annotation>
                    </element>
                    <element maxOccurs="unbounded" minOccurs="0" name="platform"
                             type="espas:xlinkHref_PropertyType">
                        <annotation>
                            <documentation>-- Definition --
                                The operated platform.
                            </documentation>
                        </annotation>
                    </element>
                </sequence>
                <attribute name="deleted" type="espas:deleteType"/>
            </extension>
        </complexContent>
    </complexType>
    <complexType name="ESPAS_OperationPropertyType">
        <sequence minOccurs="0">
            <element ref="espas:ESPAS_Operation"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>

    <!-- ESPAS_Location -->
    <element name="ESPAS_Location" substitutionGroup="gml:AbstractObject" type="espas:ESPAS_LocationType">
        <annotation>
            <documentation>-- Definition --
                Location of an object provided by a geometric or geographic description or both.
            </documentation>
        </annotation>
    </element>
    <complexType name="ESPAS_LocationType">
        <sequence>
            <element maxOccurs="1" minOccurs="0" name="geometryLocation" type="gml:GeometryPropertyType">
                <annotation>
                    <documentation>-- Definition --
                        Geometric representation of the location.
                    </documentation>
                </annotation>
            </element>
            <element maxOccurs="1" minOccurs="0" name="nameLocation" type="gmd:EX_GeographicDescription_PropertyType">
                <annotation>
                    <documentation>-- Definition --
                        Geographic description of the location using text or an identifier.
                    </documentation>
                </annotation>
            </element>
        </sequence>
    </complexType>
    <complexType name="ESPAS_LocationPropertyType">
        <sequence>
            <element ref="espas:ESPAS_Location"/>
        </sequence>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>

    <!-- new start -->
    <!-- ESPAS_ProcessCapability -->
    <element name="ESPAS_ProcessCapability" substitutionGroup="gml:AbstractObject"
             type="espas:ESPAS_ProcessCapabilityType">
        <annotation>
            <documentation>Capabilities of the process</documentation>
        </annotation>
    </element>
    <complexType name="ESPAS_ProcessCapabilityType">
        <sequence>
            <element name="name" type="string">
                <annotation>
                    <documentation>name of the capability (for internal use within ESPAS system)</documentation>
                </annotation>
            </element>
            <element name="observedProperty" type="espas:xlinkHref_PropertyType">
                <annotation>
                    <documentation>what the process can measure or predict</documentation>
                </annotation>
            </element>
            <element minOccurs="0" maxOccurs="1" name="dimensionalityInstance" type="espas:xlinkHref_PropertyType">
                <annotation>
                    <documentation>it describes the data domain of the single instance</documentation>
                </annotation>
            </element>
            <element minOccurs="0" maxOccurs="1" name="dimensionalityTimeLine" type="espas:xlinkHref_PropertyType">
                <annotation>
                    <documentation>for annimation...</documentation>
                </annotation>
            </element>
            <element minOccurs="0" maxOccurs="1" name="units" type="espas:xlinkHref_PropertyType">
                <annotation>
                    <documentation>units of the observed property</documentation>
                </annotation>
            </element>
            <element minOccurs="0" maxOccurs="1" name="validMin" type="string">
                <annotation>
                    <documentation>Minimun valid value of the observed property</documentation>
                </annotation>
            </element>
            <element minOccurs="0" maxOccurs="1" name="validMax" type="string">
                <annotation>
                    <documentation>Maximum valid ...</documentation>
                </annotation>
            </element>
            <element minOccurs="0" maxOccurs="1" name="fillValue" type="string">
                <annotation>
                    <documentation>flag value for missing values</documentation>
                </annotation>
            </element>
            <element minOccurs="0" maxOccurs="unbounded" name="qualifier" type="espas:xlinkHref_ExtendedPropertyType">
                <annotation>
                    <documentation>link to qualifier vocabulary ...</documentation>
                </annotation>
            </element>
            <element minOccurs="0" maxOccurs="1" name="extractedParameter" type="boolean">
                <annotation>
                    <documentation>
                        Defines whether the observed property of the corresponding process capability
                        can be extracted as a separate value (a value added service).
                    </documentation>
                </annotation>
            </element>
            <element minOccurs="0" maxOccurs="1" name="vectorRepresentation" type="espas:ESPAS_VectorRepresentationPropertyType">
                <annotation>
                    <documentation>
                        ...
                    </documentation>
                </annotation>
            </element>
            <element minOccurs="0" maxOccurs="1" name="compressedRepresentation" type="espas:xlinkHref_PropertyType">
                <annotation>
                    <documentation>
                        ...
                    </documentation>
                </annotation>
            </element>
        </sequence>
    </complexType>
    <complexType name="ESPAS_ProcessCapabilityPropertyType">
        <sequence minOccurs="0">
            <element ref="espas:ESPAS_ProcessCapability"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>
    <!-- new end -->

    <!-- ESPAS_InstrumentPlatformPair -->
    <element name="ESPAS_InstrumentPlatformPair" substitutionGroup="gml:AbstractObject"
             type="espas:ESPAS_InstrumentPlatformPairType">
        <annotation>
            <documentation>-- Definition --
                A pair consisting of a platform and an instrument mounted on this platform.
            </documentation>
        </annotation>
    </element>
    <complexType name="ESPAS_InstrumentPlatformPairType">
        <sequence>
            <element name="instrument" type="espas:xlinkHref_PropertyType">
                <annotation>
                    <documentation>-- Definition --
                        Instrument mounted on the specified platform.
                    </documentation>
                </annotation>
            </element>
            <element name="platform" type="espas:xlinkHref_PropertyType">
                <annotation>
                    <documentation>-- Definition --
                        Platform hosting the specified instrument.
                    </documentation>
                </annotation>
            </element>
        </sequence>
    </complexType>
    <complexType name="ESPAS_InstrumentPlatformPairPropertyType">
        <sequence>
            <element ref="espas:ESPAS_InstrumentPlatformPair"/>
        </sequence>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>

    <!-- ESPAS_InputOutput -->
    <element name="ESPAS_InputOutput" substitutionGroup="gml:AbstractObject" type="espas:ESPAS_InputOutputType">
        <annotation>
            <documentation>-- Definition --
                Name, or other identification, and description of required input or produced output by the application
                of a process component.

                -- Description --
                The description does not involve the values of the data. The actual values, if required, shall be stored
                in the attribute &lt;i&gt;parameter&amp;gt;NamedValue &lt;/i&gt;of the observation utilising the process
                component as they are specific to the event of the observation and not to the applied process.
            </documentation>
        </annotation>
    </element>
    <complexType name="ESPAS_InputOutputType">
        <sequence>
            <element name="description" type="gmi:LE_Source_PropertyType">
                <annotation>
                    <documentation>-- Definition --
                        Description of input or output data relevant to a process component.
                    </documentation>
                </annotation>
            </element>
            <element maxOccurs="1" minOccurs="0" name="name" type="string">
                <annotation>
                    <documentation>-- Definition --
                        Name or other identification of input or output data relevant to a process component.
                    </documentation>
                </annotation>
            </element>
        </sequence>
    </complexType>
    <complexType name="ESPAS_InputOutputPropertyType">
        <sequence>
            <element ref="espas:ESPAS_InputOutput"/>
        </sequence>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>

    <!-- new start -->
    <!-- ESPAS_InstrumentOperationalMode -->
    <element name="ESPAS_InstrumentOperationalMode" substitutionGroup="gml:AbstractObject"
             type="espas:ESPAS_InstrumentOperationalModeType"/>
    <complexType name="ESPAS_InstrumentOperationalModeType">
        <sequence>
            <element name="id" type="string"/>
            <element name="name" type="string"/>
            <element name="description" type="string"/>
        </sequence>
    </complexType>
    <complexType name="ESPAS_InstrumentOperationalModePropertyType">
        <sequence minOccurs="0">
            <element ref="espas:ESPAS_InstrumentOperationalMode"/>
        </sequence>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>

    <!-- ESPAS_InstrumentOperationalModePair -->
    <element name="ESPAS_InstrumentOperationalModePair" substitutionGroup="gml:AbstractObject"
             type="espas:ESPAS_InstrumentOperationalModePairType"/>
    <complexType name="ESPAS_InstrumentOperationalModePairType">
        <sequence>
            <element name="instrument" type="espas:xlinkHref_PropertyType"/>
            <element name="mode" type="espas:ESPAS_InstrumentOperationalModePropertyType"/>
        </sequence>
    </complexType>
    <complexType name="ESPAS_InstrumentOperationalModePairPropertyType">
        <sequence>
            <element ref="espas:ESPAS_InstrumentOperationalModePair"/>
        </sequence>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>

    <!-- ESPAS_VectorRepresentation -->
    <element name="ESPAS_VectorRepresentation" substitutionGroup="gml:AbstractObject" type="espas:ESPAS_VectorRepresentationType">
        <annotation>
            <documentation>-- Definition --
                Name, or other identification, and description of required input or produced output by the application
                of a process component.

                -- Description --
                The description does not involve the values of the data. The actual values, if required, shall be stored
                in the attribute &lt;i&gt;parameter&amp;gt;NamedValue &lt;/i&gt;of the observation utilising the process
                component as they are specific to the event of the observation and not to the applied process.
            </documentation>
        </annotation>
    </element>
    <complexType name="ESPAS_VectorRepresentationType">
        <sequence>
            <element maxOccurs="1" minOccurs="1" name="crs" type="espas:xlinkHref_PropertyType">
                <annotation>
                    <documentation>-- Definition --
                        link to crs vocabulary
                    </documentation>
                </annotation>
            </element>
            <element maxOccurs="unbounded" minOccurs="0" name="component" type="espas:xlinkHref_ExtendedPropertyType">
                <annotation>
                    <documentation>-- Definition --
                        ...
                    </documentation>
                </annotation>
            </element>
            <element maxOccurs="unbounded" minOccurs="0" name="projection" type="espas:xlinkHref_ExtendedPropertyType">
                <annotation>
                    <documentation>-- Definition --
                        ...
                    </documentation>
                </annotation>
            </element>
        </sequence>
    </complexType>
    <complexType name="ESPAS_VectorRepresentationPropertyType">
        <sequence>
            <element ref="espas:ESPAS_VectorRepresentation"/>
        </sequence>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>
    <!-- new end -->

    <simpleType name="ESPAS_ComputationTypeValueType">
        <union memberTypes="espas:ESPAS_ComputationTypeValueEnumerationType espas:ESPAS_ComputationTypeValueOtherType"/>
    </simpleType>
    <simpleType name="ESPAS_ComputationTypeValueEnumerationType">
        <restriction base="string"/>
    </simpleType>
    <simpleType name="ESPAS_ComputationTypeValueOtherType">
        <restriction base="string">
            <pattern value="other: \w{2,}"/>
        </restriction>
    </simpleType>

    <!-- Extensions -->
    <complexType name="ESPAS_InputOutput_ExtendedPropertyType">
        <complexContent>
            <extension base="espas:ESPAS_InputOutputPropertyType">
                <attribute name="deleted" type="espas:deleteType"/>
            </extension>
        </complexContent>
    </complexType>
    <complexType name="LE_Algorithm_ExtendedPropertyType">
        <complexContent>
            <extension base="gmi:LE_Algorithm_PropertyType">
                <attribute name="deleted" type="espas:deleteType"/>
            </extension>
        </complexContent>
    </complexType>
    <complexType name="ESPAS_InstrumentPlatformPair_ExtendedPropertyType">
        <complexContent>
            <extension base="espas:ESPAS_InstrumentPlatformPairPropertyType">
                <attribute name="deleted" type="espas:deleteType"/>
            </extension>
        </complexContent>
    </complexType>
    <complexType name="ESPAS_InstrumentOperationalModePair_ExtendedPropertyType">
        <complexContent>
            <extension base="espas:ESPAS_InstrumentOperationalModePairPropertyType">
                <attribute name="deleted" type="espas:deleteType"/>
            </extension>
        </complexContent>
    </complexType>
    <complexType name="ESPAS_InstrumentOperationalMode_ExtendedPropertyType">
        <complexContent>
            <extension base="espas:ESPAS_InstrumentOperationalModePropertyType">
                <attribute name="deleted" type="espas:deleteType"/>
            </extension>
        </complexContent>
    </complexType>
    <complexType name="ESPAS_ProcessCapability_ExtendedPropertyType">
        <complexContent>
            <extension base="espas:ESPAS_ProcessCapabilityPropertyType">
                <attribute name="deleted" type="espas:deleteType"/>
            </extension>
        </complexContent>
    </complexType>
    <complexType name="ESPAS_Location_ExtendedPropertyType">
        <complexContent>
            <extension base="espas:ESPAS_LocationPropertyType">
                <attribute name="deleted" type="espas:deleteType"/>
            </extension>
        </complexContent>
    </complexType>

</schema>