<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright: GMV SA -->
<!-- Author: Alberto Agueda Mate (AAAM) -->
<!-- Language: XML Schema v1.0 -->
<!-- Synopsis: OrbitML observations file definition schema -->
<!-- SCCS info: @(#)/home/users/aaam/OrbitML/SCCS/s.observationsFile.xsd    1.3     03/09/18     ORBITML -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:include schemaLocation="time.xsd"/>
	<xs:include schemaLocation="vector.xsd"/>
	<xs:element name="observationsFile" type="observationsFileType">
		<xs:annotation>
			<xs:documentation>Observations file</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="observationsFileType">
		<xs:annotation>
			<xs:documentation>Observations file type</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="timeSpan" type="timeSpanType"/>
			<xs:element name="observationsRecord" type="observationsRecordType" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="observationsFileId" type="xs:string" use="required"/>
		<xs:attribute name="stationId" type="xs:string" use="optional"/>
		<xs:attribute name="transponderId" type="xs:string" use="optional"/>
	</xs:complexType>
	<xs:complexType name="observationsRecordType">
		<xs:annotation>
			<xs:documentation>Observations record type</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="time" type="dateTimeType"/>
			<xs:element name="tag" type="tagType"/>
			<xs:element name="timeTagError" type="timeMagnitude"/>
			<xs:element name="satellites" type="satellitesType"/>
			<xs:element name="stations" type="stationsType" minOccurs="0"/>
			<xs:element name="components" type="componentsType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="componentsType">
		<xs:annotation>
			<xs:documentation>Observation components type</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="number" type="xs:positiveInteger"/>
			<xs:element name="comp" type="singleComponentType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="singleComponentType">
		<xs:annotation>
			<xs:documentation>Observation single component type</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="meas" type="measurementType"/>
			<xs:element name="sigma" type="measurementType" minOccurs="0"/>
			<xs:element name="integrationTime" type="periodMagnitude" minOccurs="0"/>
			<xs:element name="corrections" type="correctionsType"/>
		</xs:sequence>
		<xs:attribute name="type" type="componentTypeType" use="required"/>
	</xs:complexType>
	<xs:complexType name="correctionsType">
		<xs:annotation>
			<xs:documentation>Observation corrections type</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="number" type="xs:positiveInteger"/>
			<xs:element name="corr" type="singleCorrectionType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="singleCorrectionType">
		<xs:annotation>
			<xs:documentation>Observation single correction type</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:double">
				<xs:attribute name="type" type="correctionsTypeType" use="required"/>
				<xs:attribute name="units" type="generalUnits" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="measurementType">
		<xs:annotation>
			<xs:documentation>Observation single measurement (or correction) type</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:double">
				<xs:attribute name="units" type="generalUnits" use="optional" default="m"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="componentTypeType">
		<xs:annotation>
			<xs:documentation>Observation component type type</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:enumeration value="stat-to-sat_1WayRange"/>
			<xs:enumeration value="stat-to-sat_1WayRangeRate"/>
			<xs:enumeration value="stat-to-sat_1WayRangeDiff"/>
			<xs:enumeration value="stat-to-sat_2WayRange"/>
			<xs:enumeration value="stat-to-sat_2WayRangeRate"/>
			<xs:enumeration value="stat-to-sat_2WayRangeDiff"/>
			<xs:enumeration value="stat-to-sat_Half2WayRange"/>
			<xs:enumeration value="stat-to-sat_Half2WayRangeRate"/>
			<xs:enumeration value="stat-to-sat_Half2WayRangeDiff"/>
			<xs:enumeration value="stat-to-sat-to-stat_4WayRange"/>
			<xs:enumeration value="stat-to-sat-to-stat_4WayRangeRate"/>
			<xs:enumeration value="stat-to-sat-to-stat_4WayRangeDiff"/>
			<xs:enumeration value="stat-to-sat-to-sat_4WayRange"/>
			<xs:enumeration value="stat-to-sat-to-sat_4WayRangeRate"/>
			<xs:enumeration value="stat-to-sat-to-sat_4WayRangeDiff"/>
			<xs:enumeration value="stat-to-sat-to-stat_2WayRange"/>
			<xs:enumeration value="stat-to-sat-to-stat_2WayRangeRate"/>
			<xs:enumeration value="stat-to-sat-to-stat_2WayRangeDiff"/>
			<xs:enumeration value="azimuth"/>
			<xs:enumeration value="elevation"/>
			<xs:enumeration value="sat-to-sat_1WayRange"/>
			<xs:enumeration value="sat-to-sat_1WayRangeRate"/>
			<xs:enumeration value="sat-to-sat_1WayRangeDiff"/>
			<xs:enumeration value="sat-to-sat_2WayRange"/>
			<xs:enumeration value="sat-to-sat_2WayRangeRate"/>
			<xs:enumeration value="sat-to-sat_2WayRangeDiff"/>
			<xs:enumeration value="sat-to-sat-to-sat_4WayRange"/>
			<xs:enumeration value="sat-to-sat-to-sat_4WayRangeRate"/>
			<xs:enumeration value="sat-to-sat-to-sat_4WayRangeDiff"/>
			<xs:enumeration value="altimetry"/>
			<xs:enumeration value="inertialPosition"/>
			<xs:enumeration value="earthFixedPosition"/>
			<xs:enumeration value="GNSS_stat_Pseudorange"/>
			<xs:enumeration value="GNSS_stat_CarrierPhase"/>
			<xs:enumeration value="GNSS_sat_Pseudorange"/>
			<xs:enumeration value="GNSS_sat_CarrierPhase"/>
			<xs:enumeration value="GNSS_stat_singleDiff_Pseudorange"/>
			<xs:enumeration value="GNSS_sat_singleDiff_Pseudorange"/>
			<xs:enumeration value="GNSS_stat-stat_singleDiff_Pseudorange"/>
			<xs:enumeration value="GNSS_stat-sat_singleDiff_Pseudorange"/>
			<xs:enumeration value="GNSS_sat-sat_singleDiff_Pseudorange"/>
			<xs:enumeration value="GNSS_stat_singleDiff_CarrierPhase"/>
			<xs:enumeration value="GNSS_sat_singleDiff_CarrierPhase"/>
			<xs:enumeration value="GNSS_stat-stat_singleDiff_CarrierPhase"/>
			<xs:enumeration value="GNSS_stat-sat_singleDiff_CarrierPhase"/>
			<xs:enumeration value="GNSS_sat-sat_singleDiff_CarrierPhase"/>
			<xs:enumeration value="GNSS_stat-stat_doubleDiff_Pseudorange"/>
			<xs:enumeration value="GNSS_stat-sat_doubleDiff_Pseudorange"/>
			<xs:enumeration value="GNSS_sat-sat_doubleDiff_Pseudorange"/>
			<xs:enumeration value="GNSS_stat-stat_doubleDiff_CarrierPhase"/>
			<xs:enumeration value="GNSS_stat-sat_doubleDiff_CarrierPhase"/>
			<xs:enumeration value="GNSS_sat-sat_doubleDiff_CarrierPhase"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="correctionsTypeType">
		<xs:annotation>
			<xs:documentation>Observation corrections type type</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:enumeration value="residual"/>
			<xs:enumeration value="tropo"/>
			<xs:enumeration value="wetTropo"/>
			<xs:enumeration value="iono"/>
			<xs:enumeration value="centreOfMass"/>
			<xs:enumeration value="antennaPhaseCentre"/>
			<xs:enumeration value="relativistic"/>
			<xs:enumeration value="solidEarthTide"/>
			<xs:enumeration value="oceanTide"/>
			<xs:enumeration value="permanentTide"/>
			<xs:enumeration value="poleTide"/>
			<xs:enumeration value="oceanLoading"/>
			<xs:enumeration value="geoid"/>
			<xs:enumeration value="dynamicSST"/>
			<xs:enumeration value="electroMagnetic"/>
			<xs:enumeration value="barometric"/>
			<xs:enumeration value="combinedClock"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="satellitesType">
		<xs:annotation>
			<xs:documentation>Satellites (and transponders) in observation type</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="number" type="xs:positiveInteger"/>
			<xs:element name="satellite" type="singleSatelliteType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="singleSatelliteType">
		<xs:annotation>
			<xs:documentation>Single satellite in observation type</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="satelliteId" type="xs:string"/>
			<xs:element name="transponderId" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="stationsType">
		<xs:annotation>
			<xs:documentation>Stations in observation type</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="number" type="xs:positiveInteger"/>
			<xs:element name="station" type="singleStationType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="singleStationType">
		<xs:annotation>
			<xs:documentation>Single station in observation type</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="stationId" type="xs:string"/>
			<xs:element name="meteoData" type="meteoDataType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="tagType">
		<xs:annotation>
			<xs:documentation>Tag type (time tag of the observation)</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:enumeration value="none"/>
			<xs:enumeration value="trackerReceive"/>
			<xs:enumeration value="trackerTransmit"/>
			<xs:enumeration value="trackedReceive"/>
			<xs:enumeration value="trackedTrasmit"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
