<?xml version="1.0" encoding="UTF-8"?>
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
  <edmx:DataServices>
    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="SensorThings">
      <EntityType Name="Thing">
        <Key><PropertyRef Name="id"/></Key>
        <Property Name="id" Type="Edm.String" Nullable="false"/>
        <Property Name="name" Type="Edm.String"/>
        <Property Name="description" Type="Edm.String"/>
        <Property Name="properties" Type="Edm.String"/>
        <NavigationProperty Name="Locations" Type="Collection(SensorThings.Location)"/>
        <NavigationProperty Name="HistoricalLocations" Type="Collection(SensorThings.HistoricalLocation)"/>
        <NavigationProperty Name="Datastreams" Type="Collection(SensorThings.Datastream)"/>
      </EntityType>
      <EntityType Name="Location">
        <Key><PropertyRef Name="id"/></Key>
        <Property Name="id" Type="Edm.String" Nullable="false"/>
        <Property Name="name" Type="Edm.String"/>
        <Property Name="description" Type="Edm.String"/>
        <Property Name="encodingType" Type="Edm.String"/>
        <Property Name="location" Type="Edm.GeographyPoint"/>
        <NavigationProperty Name="Things" Type="Collection(SensorThings.Thing)"/>
        <NavigationProperty Name="HistoricalLocations" Type="Collection(SensorThings.HistoricalLocation)"/>
      </EntityType>
      <EntityType Name="HistoricalLocation">
        <Key><PropertyRef Name="id"/></Key>
        <Property Name="id" Type="Edm.String" Nullable="false"/>
        <Property Name="time" Type="Edm.DateTimeOffset"/>
        <NavigationProperty Name="Thing" Type="SensorThings.Thing"/>
        <NavigationProperty Name="Locations" Type="Collection(SensorThings.Location)"/>
      </EntityType>
      <EntityType Name="Datastream">
        <Key><PropertyRef Name="id"/></Key>
        <Property Name="id" Type="Edm.String" Nullable="false"/>
        <Property Name="name" Type="Edm.String"/>
        <Property Name="description" Type="Edm.String"/>
        <Property Name="unitOfMeasurement" Type="Edm.String"/>
        <Property Name="observationType" Type="Edm.String"/>
        <Property Name="observedArea" Type="Edm.GeographyPoint"/>
        <Property Name="properties" Type="Edm.String"/>
        <NavigationProperty Name="Thing" Type="SensorThings.Thing"/>
        <NavigationProperty Name="Sensor" Type="SensorThings.Sensor"/>
        <NavigationProperty Name="ObservedProperty" Type="SensorThings.ObservedProperty"/>
        <NavigationProperty Name="Observations" Type="Collection(SensorThings.Observation)"/>
      </EntityType>
      <EntityType Name="Sensor">
        <Key><PropertyRef Name="id"/></Key>
        <Property Name="id" Type="Edm.String" Nullable="false"/>
        <Property Name="name" Type="Edm.String"/>
        <Property Name="description" Type="Edm.String"/>
        <Property Name="encodingType" Type="Edm.String"/>
        <Property Name="metadata" Type="Edm.String"/>
        <NavigationProperty Name="Datastreams" Type="Collection(SensorThings.Datastream)"/>
      </EntityType>
      <EntityType Name="ObservedProperty">
        <Key><PropertyRef Name="id"/></Key>
        <Property Name="id" Type="Edm.String" Nullable="false"/>
        <Property Name="name" Type="Edm.String"/>
        <Property Name="definition" Type="Edm.String"/>
        <Property Name="description" Type="Edm.String"/>
        <NavigationProperty Name="Datastreams" Type="Collection(SensorThings.Datastream)"/>
      </EntityType>
      <EntityType Name="Observation">
        <Key><PropertyRef Name="id"/></Key>
        <Property Name="id" Type="Edm.String" Nullable="false"/>
        <Property Name="phenomenonTime" Type="Edm.String"/>
        <Property Name="resultTime" Type="Edm.DateTimeOffset"/>
        <Property Name="result" Type="Edm.String"/>
        <Property Name="resultQuality" Type="Edm.String"/>
        <Property Name="parameters" Type="Edm.String"/>
        <NavigationProperty Name="Datastream" Type="SensorThings.Datastream"/>
        <NavigationProperty Name="FeatureOfInterest" Type="SensorThings.FeatureOfInterest"/>
      </EntityType>
      <EntityType Name="FeatureOfInterest">
        <Key><PropertyRef Name="id"/></Key>
        <Property Name="id" Type="Edm.String" Nullable="false"/>
        <Property Name="name" Type="Edm.String"/>
        <Property Name="description" Type="Edm.String"/>
        <Property Name="encodingType" Type="Edm.String"/>
        <Property Name="feature" Type="Edm.GeographyPoint"/>
        <NavigationProperty Name="Observations" Type="Collection(SensorThings.Observation)"/>
      </EntityType>
      <EntityContainer Name="Container">
        <EntitySet Name="Things" EntityType="SensorThings.Thing"/>
        <EntitySet Name="Locations" EntityType="SensorThings.Location"/>
        <EntitySet Name="HistoricalLocations" EntityType="SensorThings.HistoricalLocation"/>
        <EntitySet Name="Datastreams" EntityType="SensorThings.Datastream"/>
        <EntitySet Name="Sensors" EntityType="SensorThings.Sensor"/>
        <EntitySet Name="ObservedProperties" EntityType="SensorThings.ObservedProperty"/>
        <EntitySet Name="Observations" EntityType="SensorThings.Observation"/>
        <EntitySet Name="FeaturesOfInterest" EntityType="SensorThings.FeatureOfInterest"/>
      </EntityContainer>
    </Schema>
  </edmx:DataServices>
</edmx:Edmx>
