<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns="http://www.topografix.com/GPX/1/1"
        targetNamespace="http://www.gpstrailmaps.com/map3d/map3d"
        xmlns:map3d="http://www.gpstrailmaps.com/map3d/map3d"
        elementFormDefault="qualified">

<xs:import schemaLocation="http://www.topografix.com/gpx/1/1/gpx.xsd"
           namespace="http://www.topografix.com/GPX/1/1" />

<!--
	This schema describes the extensions to the public gpx format used in the
      Wissenbach Map3D. Every element in the gpx format allows
      the insertion of element content, from another namespace. For example,
      Map differentiates between a planning layer and a permanent layer, but this
      differentiation is program-specific and therefore of no interest to other
      applications.
-->

<xs:element name="layer" type="xs:string" />
<xs:element name="style" type="xs:string" />

<xs:element name="resourceLinks">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="resource" type="linkType" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

<xs:element name="sceneProperties">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="VerticalScale" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Ambient_R" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Ambient_G" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Ambient_B" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Terrain_R" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Terrain_G" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Terrain_B" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="EnableRock" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
      <xs:element name="RockAngle" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Rock_R" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Rock_G" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Rock_B" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="SunAzimuth" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="SunElevation" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="EnableSnow" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
      <xs:element name="SnowLevel" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="SnowSun" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Snow_R" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Snow_G" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Snow_B" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="EnableAlpine" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
      <xs:element name="AlpineLevel" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="AlpineSun" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Alpine_R" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Alpine_G" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Alpine_B" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="EnableConifer" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
      <xs:element name="ConiferLevel" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="ConiferSun" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Conifer_R" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Conifer_G" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Conifer_B" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="GroundTrails" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
      <xs:element name="EnableTrails" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
      <xs:element name="TrailsSeeThru" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
      <xs:element name="TrailFloat" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="EnableFog" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
      <xs:element name="FogDensity" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Fog_R" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Fog_G" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Fog_B" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="EnableWater" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
      <xs:element name="WaterLevel" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Water_R" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Water_G" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Water_B" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
      <xs:element name="SignSize" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

</xs:schema> 