<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="WEERONLINE">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="envelope"/>
        <xs:element ref="continent" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="type" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="envelope">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="source"/>
        <xs:element ref="publicationdate"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="source" type="xs:string"/>
  <xs:element name="publicationdate" type="xs:dateTime"/>
  <xs:element name="continent">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="continentid" minOccurs="0"/>
        <xs:element ref="continentname"/>
        <xs:element ref="country" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="continentid" type="xs:integer"/>
      <xs:attribute name="continentname" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="continentid" type="xs:integer"/>
  <xs:element name="continentname" type="xs:string"/>
  <xs:element name="country">
    <xs:complexType>
      <xs:choice>
        <xs:sequence>
          <xs:element ref="countryid" minOccurs="0"/>
          <xs:element ref="countryname"/>
          <xs:element ref="region" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:sequence>
          <xs:element ref="countryid" minOccurs="0"/>
          <xs:element ref="countryname"/>
          <xs:element ref="skiarea" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:sequence>
          <xs:element ref="countryid" minOccurs="0"/>
          <xs:element ref="countryname"/>
          <xs:element ref="location" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:choice>
      <xs:attribute name="countryid" type="xs:integer"/>
      <xs:attribute name="countryname" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="countryid" type="xs:integer"/>
  <xs:element name="countryname" type="xs:string"/>
  <xs:element name="region">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="regionid" minOccurs="0"/>
        <xs:element ref="regionname"/>
        <xs:element ref="skiarea" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="regionid" type="xs:integer"/>
      <xs:attribute name="regionname" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="regionid" type="xs:integer"/>
  <xs:element name="regionname" type="xs:string"/>
  <xs:element name="skiarea">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="skiareaid" minOccurs="0"/>
        <xs:element ref="skiareaname"/>
        <xs:element ref="skiarea_altitude" minOccurs="0"/>
        <xs:element ref="weatherinfo" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="location" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="skiareaid" type="xs:integer"/>
      <xs:attribute name="skiareaname" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="skiareaid" type="xs:integer"/>
  <xs:element name="skiareaname" type="xs:string"/>
  <xs:element name="skiarea_altitude" type="xs:string"/>
  <xs:element name="location">
    <xs:complexType>
      <xs:choice>
        <xs:sequence>
          <xs:element ref="locationid" minOccurs="0"/>
          <xs:element ref="locationname"/>
          <xs:element ref="latitude" minOccurs="0"/>
          <xs:element ref="longitude" minOccurs="0"/>
          <xs:element ref="snowinfo"/>
        </xs:sequence>
        <xs:sequence>
          <xs:element ref="locationid" minOccurs="0"/>
          <xs:element ref="locationname"/>
          <xs:element ref="latitude" minOccurs="0"/>
          <xs:element ref="longitude" minOccurs="0"/>
          <xs:element ref="weatherinfo" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:sequence>
          <xs:element ref="locationid" minOccurs="0"/>
          <xs:element ref="locationname"/>
          <xs:element ref="latitude" minOccurs="0"/>
          <xs:element ref="longitude" minOccurs="0"/>
          <xs:element ref="weatherinfo" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element ref="snowinfo"/>
        </xs:sequence>
      </xs:choice>
      <xs:attribute name="locationid" type="xs:integer"/>
      <xs:attribute name="locationname" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="locationid" type="xs:integer"/>
  <xs:element name="locationname" type="xs:string"/>
  <xs:element name="latitude" type="xs:decimal"/>
  <xs:element name="longitude" type="xs:decimal"/>
  <xs:element name="date" type="xs:dateTime"/>
  <xs:element name="weekday" type="xs:string"/>
  <xs:element name="snowinfo">
    <xs:complexType>
      <xs:sequence minOccurs="0">
        <xs:element ref="date"/>
        <xs:element ref="weekday" minOccurs="0"/>
        <xs:element ref="snowdepth_valley" minOccurs="0"/>
        <xs:element ref="snowdepth_mountain" minOccurs="0"/>
        <xs:element ref="snow_condition" minOccurs="0"/>
        <xs:element ref="pist_condition" minOccurs="0"/>
        <xs:element ref="lifts_open" minOccurs="0"/>
        <xs:element ref="lifts_total" minOccurs="0"/>
        <xs:element ref="run_to_resort" minOccurs="0"/>
        <xs:element ref="pists" minOccurs="0"/>
        <xs:element ref="cross_country_tracks" minOccurs="0"/>
        <xs:element ref="altitude_skiarea" minOccurs="0"/>
        <xs:element ref="skipas_1_day" minOccurs="0"/>
        <xs:element ref="skipas_1_week" minOccurs="0"/>
      </xs:sequence>
      <xs:attribute name="date" type="xs:dateTime"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="snowdepth_valley" type="xs:string"/>
  <xs:element name="snowdepth_mountain" type="xs:string"/>
  <xs:element name="snow_condition" type="xs:string"/>
  <xs:element name="pist_condition" type="xs:string"/>
  <xs:element name="lifts_open" type="xs:string"/>
  <xs:element name="lifts_total" type="xs:string"/>
  <xs:element name="run_to_resort" type="xs:string"/>
  <xs:element name="pists" type="xs:string"/>
  <xs:element name="cross_country_tracks" type="xs:string"/>
  <xs:element name="altitude_skiarea" type="xs:string"/>
  <xs:element name="skipas_1_day" type="xs:string"/>
  <xs:element name="skipas_1_week" type="xs:string"/>
  <xs:element name="weatherinfo">
    <xs:complexType>
      <xs:sequence minOccurs="0">
        <xs:element ref="date"/>
        <xs:element ref="weekday" minOccurs="0"/>
        <xs:element ref="maximumtemperature" minOccurs="0"/>
        <xs:element ref="minimumtemperature" minOccurs="0"/>
        <xs:element ref="weathersymbolmorning" minOccurs="0"/>
        <xs:element ref="weathersymbolmidday" minOccurs="0"/>
        <xs:element ref="weathersymbolevening" minOccurs="0"/>
        <xs:element ref="weathersymbolday" minOccurs="0"/>
        <xs:element ref="weathersymbol" minOccurs="0"/>
        <xs:element ref="textweathersymbolmorning" minOccurs="0"/>
        <xs:element ref="textweathersymbolmidday" minOccurs="0"/>
        <xs:element ref="textweathersymbolevening" minOccurs="0"/>
        <xs:element ref="textweathersymbolday" minOccurs="0"/>
        <xs:element ref="textweathersymbol" minOccurs="0"/>
        <xs:element ref="windstrengthmorning" minOccurs="0"/>
        <xs:element ref="windstrengthmidday" minOccurs="0"/>
        <xs:element ref="windstrengthevening" minOccurs="0"/>
        <xs:element ref="windstrength" minOccurs="0"/>
        <xs:element ref="winddirectionmorning" minOccurs="0"/>
        <xs:element ref="winddirectionmidday" minOccurs="0"/>
        <xs:element ref="winddirectionevening" minOccurs="0"/>
        <xs:element ref="winddirection" minOccurs="0"/>
        <xs:element ref="windrangemorning" minOccurs="0"/>
        <xs:element ref="windrangemidday" minOccurs="0"/>
        <xs:element ref="windrangeevening" minOccurs="0"/>
        <xs:element ref="windrange" minOccurs="0"/>
        <xs:element ref="uvindex" minOccurs="0"/>
        <xs:element ref="temperature10cm" minOccurs="0"/>
        <xs:element ref="temperatureground" minOccurs="0"/>
        <xs:element ref="windspeedmorning" minOccurs="0"/>
        <xs:element ref="windspeedmidday" minOccurs="0"/>
        <xs:element ref="windspeedevening" minOccurs="0"/>
        <xs:element ref="windspeed" minOccurs="0"/>
        <xs:element ref="gustsmorning" minOccurs="0"/>
        <xs:element ref="gustsmidday" minOccurs="0"/>
        <xs:element ref="gustsevening" minOccurs="0"/>
        <xs:element ref="gusts" minOccurs="0"/>
        <xs:element ref="sunduration" minOccurs="0"/>
        <xs:element ref="precipitationprobability" minOccurs="0"/>
        <xs:element ref="precipitation" minOccurs="0"/>
      </xs:sequence>
      <xs:attribute name="date" type="xs:dateTime"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="maximumtemperature" type="xs:decimal"/>
  <xs:element name="minimumtemperature" type="xs:decimal"/>
  <xs:element name="weathersymbolmorning" type="xs:string"/>
  <xs:element name="weathersymbolmidday" type="xs:string"/>
  <xs:element name="weathersymbolevening" type="xs:string"/>
  <xs:element name="weathersymbolday" type="xs:string"/>
  <xs:element name="weathersymbol" type="xs:string"/>
  <xs:element name="textweathersymbolmorning" type="xs:string"/>
  <xs:element name="textweathersymbolmidday" type="xs:string"/>
  <xs:element name="textweathersymbolevening" type="xs:string"/>
  <xs:element name="textweathersymbolday" type="xs:string"/>
  <xs:element name="textweathersymbol" type="xs:string"/>
  <xs:element name="windstrengthmorning" type="xs:integer"/>
  <xs:element name="windstrengthmidday" type="xs:integer"/>
  <xs:element name="windstrengthevening" type="xs:integer"/>
  <xs:element name="windstrength" type="xs:integer"/>
  <xs:element name="winddirectionmorning" type="xs:string"/>
  <xs:element name="winddirectionmidday" type="xs:string"/>
  <xs:element name="winddirectionevening" type="xs:string"/>
  <xs:element name="winddirection" type="xs:string"/>
  <xs:element name="windrangemorning" type="xs:string"/>
  <xs:element name="windrangemidday" type="xs:string"/>
  <xs:element name="windrangeevening" type="xs:string"/>
  <xs:element name="windrange" type="xs:string"/>
  <xs:element name="uvindex" type="xs:integer"/>
  <xs:element name="temperature10cm" type="xs:decimal"/>
  <xs:element name="temperatureground" type="xs:decimal"/>
  <xs:element name="windspeedmorning" type="xs:decimal"/>
  <xs:element name="windspeedmidday" type="xs:decimal"/>
  <xs:element name="windspeedevening" type="xs:decimal"/>
  <xs:element name="windspeed" type="xs:decimal"/>
  <xs:element name="gustsmorning" type="xs:decimal"/>
  <xs:element name="gustsmidday" type="xs:decimal"/>
  <xs:element name="gustsevening" type="xs:decimal"/>
  <xs:element name="gusts" type="xs:decimal"/>
  <xs:element name="sunduration" type="xs:decimal"/>
  <xs:element name="precipitationprobability" type="xs:integer"/>
  <xs:element name="precipitation" type="xs:decimal"/>

</xs:schema>