<?xml version="1.0" encoding="UTF-8"?>
<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:include schemaLocation="general.xsd"/>
	<!-- ======================== Valid Unit Type ========================= -->
	<xs:simpleType name="validUnitTypes">
		<xs:restriction base="xs:string">
			<xs:enumeration value="imperial"/>
			<xs:enumeration value="metric"/>
			<xs:enumeration value=""/>
		</xs:restriction>
	</xs:simpleType>
	<!-- ======================== textSummary Format ========================= -->
	<xs:simpleType name="textSummaryType">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	<!-- ======================== Period Type ========================= -->
	<xs:complexType name="periodType">
		<xs:simpleContent>
			<xs:extension base="validDayNames">
				<xs:attribute name="textForecastName" type="validDayNames"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ======================== Warning Type ========================= -->
	<xs:complexType name="warningsType">
		<xs:sequence minOccurs="0">
			<xs:element name="event" type="warningEventType" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="url" type="xs:anyURI"/>
	</xs:complexType>
	<xs:complexType name="warningEventType">
		<xs:sequence>
			<xs:element name="dateTime" type="dateStampType" minOccurs="2" maxOccurs="2"/>
		</xs:sequence>
		<xs:attribute name="type" type="validWarningTypes"/>
		<xs:attribute name="description" type="xs:string"/>
		<xs:attribute name="priority" type="validWarningPriorities"/>
		<xs:attribute name="alertColourLevel" type="validAlertColourLevels"/>
		<xs:attribute name="expiryTime" type="timeStampType"/>
		<xs:attribute name="url" type="xs:anyURI"/>
	</xs:complexType>
	<xs:simpleType name="validWarningTypes">
		<xs:restriction base="xs:string">
			<xs:enumeration value="advisory"/>
			<xs:enumeration value="warning"/>
			<xs:enumeration value="watch"/>
			<xs:enumeration value="ended"/>
			<xs:enumeration value="statement"/>
			<xs:enumeration value=""/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="validWarningPriorities">
		<xs:restriction base="xs:string">
			<xs:enumeration value="urgent"/>
			<xs:enumeration value="high"/>
			<xs:enumeration value="medium"/>
			<xs:enumeration value="low"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="validAlertColourLevels">
		<xs:restriction base="xs:string">
			<xs:enumeration value="red"/>
			<xs:enumeration value="orange"/>
			<xs:enumeration value="yellow"/>
			<xs:enumeration value=""/>
		</xs:restriction>
	</xs:simpleType>
	<!-- ========================= Conditions Format ======================== -->
	<xs:complexType name="currentConditionsType">
		<xs:sequence>
			<xs:element name="station" type="stationType" minOccurs="0"/>
			<xs:element name="dateTime" type="dateStampType" minOccurs="0" maxOccurs="2"/>
			<xs:element name="condition" type="conditionType" minOccurs="0"/>
			<xs:element name="iconCode" type="iconCodeType" minOccurs="0"/>
			<xs:element name="temperature" type="temperatureType" minOccurs="0"/>
			<xs:element name="dewpoint" type="temperatureType" minOccurs="0"/>
			<xs:element name="windChill" type="calculatedWindChillType" minOccurs="0"/>
			<xs:element name="humidex" type="calculatedHumidexType" minOccurs="0"/>
			<xs:element name="pressure" type="pressureTypeCond" minOccurs="0"/>
			<xs:element name="visibility" type="visibilityTypeCond" minOccurs="0"/>
			<xs:element name="relativeHumidity" type="relativeHumidityType" minOccurs="0"/>
			<xs:element name="wind" type="windType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="stationType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="code" type="validStationCode"/>
				<xs:attribute name="lat" type="validLatLon"/>
				<xs:attribute name="lon" type="validLatLon"/>
				<xs:attribute name="country" type="validCountryCode"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="validStationCode">
		<xs:restriction base="xs:string">
			<xs:minLength value="0"/>
			<xs:maxLength value="4"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="validLatLon">
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:pattern value="\d{1,3}\.\d{2}[NWSEO]{1,2}"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value=""/>
				</xs:restriction>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<xs:simpleType name="validCountryCode">
		<xs:restriction base="xs:string">
			<xs:enumeration value="CA"/>
			<xs:enumeration value="NA"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- ============ Condition ============ -->
	<xs:simpleType name="conditionType">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>

	<!-- ============ Hourly ============ -->
	<xs:complexType name="iconCodeHourlyType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="format" type="validFormat"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>

	<xs:simpleType name="validFormat">
		<xs:restriction base="xs:string">
			<xs:enumeration value="png"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="temperatureHourlyType">
		<xs:simpleContent>
			<xs:extension base="validTemperatures">
				<xs:attribute name="units" type="validTemperatureUnits"/>
				<xs:attribute name="unitType" type="validUnitTypes"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>

	<xs:complexType name="lopHourlyType">
		<xs:simpleContent>
			<xs:extension base="validPops">
	         <xs:attribute name="category" type="categoryType"/>
	         <xs:attribute name="units" type="validPopUnits"/>
	      </xs:extension>
	   </xs:simpleContent>
	</xs:complexType>

	<xs:simpleType name="categoryType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Nil"/>
			<xs:enumeration value="Low"/>
			<xs:enumeration value="Medium"/>
			<xs:enumeration value="High"/>
			<xs:enumeration value="Nulle"/>
			<xs:enumeration value="Basse"/>
			<xs:enumeration value="Moyenne"/>
			<xs:enumeration value="Élevée"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="windChillHourlyType">
		<xs:simpleContent>
			<xs:extension base="validWindChills">
				<xs:attribute name="unitType" type="validUnitTypes"/>
			</xs:extension>
	   </xs:simpleContent>
	</xs:complexType>

	<xs:complexType name="humidexHourlyType">
		<xs:simpleContent>
	   	<xs:extension base="validHumidex">
		   	<xs:attribute name="unitType" type="validUnitTypes"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>

	<xs:complexType name="windHourlyType">
		<xs:sequence>
			<xs:element name="speed" type="windSpeedType"/>
			<xs:element name="direction" type="validWindHourlyDirections"/>
			<xs:element name="gust" type="windSpeedType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="validWindHourlyDirections">
		<xs:simpleContent>
			<xs:extension base="validWindDirections">
				<xs:attribute name="units" type="unitsHourlyType"/>
				<xs:attribute name="windDirFull" type="windDirFullType"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>

	<xs:simpleType name="unitsHourlyType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="cardinal"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="windDirFullType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="North"/>
			<xs:enumeration value="Nord"/>
			<xs:enumeration value="North-northeast"/>
			<xs:enumeration value="Nord-nord-est"/>
			<xs:enumeration value="Northeast"/>
			<xs:enumeration value="Nord-est"/>
			<xs:enumeration value="East-northeast"/>
			<xs:enumeration value="Est-nord-est"/>
			<xs:enumeration value="East"/>
			<xs:enumeration value="Est"/>
			<xs:enumeration value="East-southeast"/>
			<xs:enumeration value="Est-sud-est"/>
			<xs:enumeration value="Southeast"/>
			<xs:enumeration value="Sud-est"/>
			<xs:enumeration value="South-southeast"/>
			<xs:enumeration value="Sud-sud-est"/>
			<xs:enumeration value="South"/>
			<xs:enumeration value="Sud"/>
			<xs:enumeration value="South-southwest"/>
			<xs:enumeration value="Sud-sud-ouest"/>
			<xs:enumeration value="Southwest"/>
			<xs:enumeration value="Sud-ouest"/>
			<xs:enumeration value="West-southwest"/>
			<xs:enumeration value="Ouest-sud-ouest"/>
			<xs:enumeration value="West"/>
			<xs:enumeration value="Ouest"/>
			<xs:enumeration value="West-northwest"/>
			<xs:enumeration value="Ouest-nord-ouest"/>
			<xs:enumeration value="Northwest"/>
			<xs:enumeration value="Nord-ouest"/>
			<xs:enumeration value="North-northwest"/>
			<xs:enumeration value="Nord-nord-ouest"/>
			<xs:enumeration value="Variable direction"/>
			<xs:enumeration value="Direction variable"/>
			<xs:enumeration value=""/>
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="uvHourlyType">
		<xs:sequence>
			<xs:element name="index" type="uvIndexType"/>
		</xs:sequence>
	</xs:complexType>

	<!-- ============ Icon ============ -->
	<xs:complexType name="iconCodeType">
		<xs:simpleContent>
			<xs:extension base="validIconCodes">
				<xs:attribute name="format" type="validIconCodesUnits" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="validIconCodes">
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value=""/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:integer">
					<xs:minInclusive value="0"/>
					<xs:maxInclusive value="45"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<xs:simpleType name="validIconCodesUnits">
		<xs:restriction base="xs:string">
			<xs:enumeration value="gif"/>
		</xs:restriction>
	</xs:simpleType>

	<!-- ============ Temperature ============ -->
	<xs:complexType name="temperaturesType">
		<xs:sequence>
			<xs:element name="textSummary" type="textSummaryType"/>
			<xs:element name="temperature" type="temperatureType" maxOccurs="2"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="temperatureType">
		<xs:simpleContent>
			<xs:extension base="validTemperatures">
				<xs:attribute name="units" type="validTemperatureUnits"/>
				<xs:attribute name="unitType" type="validUnitTypes"/>
				<xs:attribute name="class" type="validTemperatureClasses"/>
				<xs:attribute name="year" type="yearType" use="optional"/>
				<xs:attribute name="period" type="periodRangeType" use="optional"/>
				<xs:attribute name="qaValue" type="qaValueType" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="validTemperatures">
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value=""/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:decimal">
					<xs:minInclusive value="-150"/>
					<xs:maxInclusive value="150"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<xs:simpleType name="validTemperatureUnits">
		<xs:restriction base="xs:string">
			<xs:enumeration value="C"/>
			<xs:enumeration value=""/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="validTemperatureClasses">
		<xs:restriction base="xs:string">
			<xs:enumeration value="high"/>
			<xs:enumeration value="low"/>
			<xs:enumeration value="max"/>
			<xs:enumeration value="min"/>
			<xs:enumeration value="extremeMax"/>
			<xs:enumeration value="extremeMin"/>
			<xs:enumeration value="normalMax"/>
			<xs:enumeration value="normalMin"/>
			<xs:enumeration value="normalMean"/>
			<xs:enumeration value="mean"/>
			<xs:enumeration value="current"/>
			<xs:enumeration value="dewpoint"/>
			<xs:enumeration value=""/>
		</xs:restriction>
	</xs:simpleType>
	<!-- =============== Wind chill =================== -->
	<xs:complexType name="windChillType">
		<xs:sequence minOccurs="0">
			<xs:element name="textSummary" type="textSummaryType"/>
			<xs:element name="calculated" type="calculatedWindChillType" maxOccurs="2"/>
			<xs:element name="frostbite" type="frostbiteWindChillType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="frostbiteWindChillType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Risk of frostbite"/>
	      <xs:enumeration value="Frostbite in minutes"/>
			<xs:enumeration value="Hazardous frostbite conditions"/>
			<xs:enumeration value="Risque d'engelures"/>
	      <xs:enumeration value="Engelures en quelques minutes"/>
			<xs:enumeration value="Conditions dangereuses d'engelures"/>
			<xs:enumeration value=""/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="calculatedWindChillType">
		<xs:simpleContent>
			<xs:extension base="validWindChills">
				<xs:attribute name="index" type="validIndexTypes"/>
				<xs:attribute name="unitType" type="validUnitTypes"/>
				<xs:attribute name="class" type="validWindChillClass"/>
				<xs:attribute name="qaValue" type="qaValueType"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="validIndexTypes">
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:integer">
					<xs:minInclusive value="1"/>
					<xs:maxInclusive value="2"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<xs:simpleType name="validWindChillClass">
		<xs:restriction base="xs:string">
			<xs:enumeration value="morning"/>
			<xs:enumeration value="afternoon"/>
			<xs:enumeration value="evening"/>
			<xs:enumeration value="overnight"/>
			<xs:enumeration value="near"/>
			<xs:enumeration value="matin"/>
			<xs:enumeration value="après-midi"/>
			<xs:enumeration value="soir"/>
			<xs:enumeration value="nuit"/>
			<xs:enumeration value="près de"/>
			<xs:enumeration value=""/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="validWindChills">
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value=""/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:integer">
					<xs:minInclusive value="-150"/>
					<xs:maxInclusive value="0"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<!-- =================== Humidex =================== -->
	<xs:complexType name="humidexType">
		<xs:sequence minOccurs="0">
			<xs:element name="calculated" type="calculatedHumidexType"/>
			<xs:element name="textSummary" type="textSummaryType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="calculatedHumidexType">
		<xs:simpleContent>
			<xs:extension base="validHumidex">
				<xs:attribute name="unitType" type="validUnitTypes"/>
				<xs:attribute name="qaValue" type="qaValueType"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="validHumidex">
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value=""/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:float"/>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:integer">
					<xs:minInclusive value="0"/>
					<xs:maxInclusive value="150"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<!-- =================== Pressure =================== -->
	<xs:complexType name="pressureTypeCond">
		<xs:simpleContent>
			<xs:extension base="validPressures">
				<xs:attribute name="units" type="validPressureUnits"/>
				<xs:attribute name="unitType" type="validUnitTypes"/>
				<xs:attribute name="change" type="validPressures"/>
				<xs:attribute name="tendency" type="validPressureTendencies"/>
				<xs:attribute name="qaValue" type="qaValueType"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="validPressures">
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value=""/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:decimal">
					<xs:minInclusive value="0"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<xs:simpleType name="validPressureTendencies">
		<xs:restriction base="xs:string">
			<xs:enumeration value="rising"/>
			<xs:enumeration value="falling"/>
			<xs:enumeration value="steady"/>
			<xs:enumeration value="à la hausse"/>
			<xs:enumeration value="à la baisse"/>
			 <xs:enumeration value="stationnaire"/>
			<xs:enumeration value=""/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="validPressureUnits">
		<xs:restriction base="xs:string">
			<xs:enumeration value="kPa"/>
			<xs:enumeration value=""/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="visibilityTypeCond">
		<xs:simpleContent>
			<xs:extension base="validVisibilities">
				<xs:attribute name="units" type="validVisibilityUnits"/>
				<xs:attribute name="unitType" type="validUnitTypes"/>
				<xs:attribute name="qaValue" type="qaValueType"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="validVisibilities">
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value=""/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:decimal">
					<xs:minInclusive value="0"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<xs:simpleType name="validVisibilityUnits">
		<xs:restriction base="xs:string">
			<xs:enumeration value="km"/>
			<xs:enumeration value=""/>
		</xs:restriction>
	</xs:simpleType>
	<!-- =================== Visibility Forecast =================== -->
	<xs:complexType name="visibilityTypeForecast">
		<xs:sequence>
			<xs:element name="windVisib" type="visibilitySubTypeForecast" minOccurs="0"/>
			<xs:element name="otherVisib" type="visibilitySubTypeForecast" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="visibilitySubTypeForecast">
		<xs:sequence>
			<xs:element name="textSummary" type="textSummaryType"/>
		</xs:sequence>
		<xs:attribute name="cause" type="xs:string"/>
	</xs:complexType>
	<!-- =================== Relative Humidity =================== -->
	<xs:complexType name="relativeHumidityType">
		<xs:simpleContent>
			<xs:extension base="validRelativeHumidities">
				<xs:attribute name="units" type="validRelativeHumidityUnits"/>
				<xs:attribute name="qaValue" type="qaValueType"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="validRelativeHumidities">
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value=""/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:integer">
					<xs:minInclusive value="0"/>
					<xs:maxInclusive value="100"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:float"/>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<xs:simpleType name="validRelativeHumidityUnits">
		<xs:restriction base="xs:string">
			<xs:enumeration value="%"/>
			<xs:enumeration value=""/>
		</xs:restriction>
	</xs:simpleType>
	<!-- =================== Winds =================== -->
	<xs:complexType name="windsType">
		<xs:sequence>
			<xs:element name="textSummary" type="textSummaryType" minOccurs="0"/>
			<xs:element name="wind" type="windType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="windType">
		<xs:sequence>
			<xs:element name="speed" type="windSpeedType"/>
			<xs:element name="gust" type="windSpeedType"/>
			<xs:element name="direction" type="windDirectionType"/>
			<xs:element name="bearing" type="windBearingType"/>
		</xs:sequence>
		<xs:attribute name="index" type="validWindIndices"/>
		<xs:attribute name="rank" type="validWindRanks"/>
	</xs:complexType>
	<xs:complexType name="windSpeedType">
		<xs:simpleContent>
			<xs:extension base="validWindSpeeds">
				<xs:attribute name="units" type="validWindUnits"/>
				<xs:attribute name="unitType" type="validUnitTypes"/>
				<xs:attribute name="qaValue" type="qaValueType"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="validWindSpeeds">
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Calm"/>
					<xs:enumeration value="Calme"/>
					<xs:enumeration value="calm"/>
					<xs:enumeration value="calme"/>
					<xs:enumeration value=""/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:decimal">
					<xs:minInclusive value="0"/>
					<xs:maxInclusive value="160"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<xs:simpleType name="validWindUnits">
		<xs:restriction base="xs:string">
			<xs:enumeration value="km/h"/>
			<xs:enumeration value=""/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="windDirectionType">
		<xs:simpleContent>
			<xs:extension base="validWindDirections">
				<xs:attribute name="qaValue" type="qaValueType"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="validWindDirections">
		<xs:restriction base="xs:string">
			<xs:enumeration value="N"/>
			<xs:enumeration value="NNE"/>
			<xs:enumeration value="NE"/>
			<xs:enumeration value="ENE"/>
			<xs:enumeration value="E"/>
			<xs:enumeration value="ESE"/>
			<xs:enumeration value="SE"/>
			<xs:enumeration value="SSE"/>
			<xs:enumeration value="S"/>
			<xs:enumeration value="SSW"/>
			<xs:enumeration value="SSO"/>
			<xs:enumeration value="SW"/>
			<xs:enumeration value="SO"/>
			<xs:enumeration value="WSW"/>
			<xs:enumeration value="OSO"/>
			<xs:enumeration value="W"/>
			<xs:enumeration value="O"/>
			<xs:enumeration value="WNW"/>
			<xs:enumeration value="ONO"/>
			<xs:enumeration value="NW"/>
			<xs:enumeration value="NO"/>
			<xs:enumeration value="NNW"/>
			<xs:enumeration value="NNO"/>
			<xs:enumeration value="VR"/>
			<xs:enumeration value=""/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="windBearingType">
		<xs:simpleContent>
			<xs:extension base="validWindBearings">
				<xs:attribute name="units" type="validWindBearingUnits"/>
				<xs:attribute name="qaValue" type="qaValueType"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="validWindBearings">
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value=""/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:decimal">
					<xs:minInclusive value="0.0"/>
					<xs:maxInclusive value="360.0"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<xs:simpleType name="validWindBearingUnits">
		<xs:restriction base="xs:string">
			<xs:enumeration value="degrees"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="validWindIndices">
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value=""/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:positiveInteger">
					<xs:minInclusive value="1"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<xs:simpleType name="validWindRanks">
		<xs:restriction base="xs:string">
			<xs:enumeration value="major"/>
			<xs:enumeration value="minor"/>
			<xs:enumeration value=""/>
		</xs:restriction>
	</xs:simpleType>
	<!-- =================== Precips Conditions=================== -->
	<xs:complexType name="precipType">
		<xs:simpleContent>
			<xs:extension base="validPrecips">
				<xs:attribute name="units" type="validPrecipUnits"/>
				<xs:attribute name="unitType" type="validUnitTypes"/>
				<xs:attribute name="class" type="validPrecipClasses"/>
				<xs:attribute name="year" type="yearType" use="optional"/>
				<xs:attribute name="period" type="periodRangeType" use="optional"/>
				<xs:attribute name="qaValue" type="qaValueType"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="validPrecips">
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value=""/>
					<xs:enumeration value="Trace"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:decimal">
					<xs:minInclusive value="0"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<xs:simpleType name="validPrecipUnits">
		<xs:restriction base="xs:string">
			<xs:enumeration value="mm"/>
			<xs:enumeration value="cm"/>
			<xs:enumeration value=""/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="validPrecipClasses">
		<xs:restriction base="xs:string">
			<xs:enumeration value="extremeRainfall"/>
			<xs:enumeration value="extremeSnowfall"/>
			<xs:enumeration value="extremePrecipitation"/>
			<xs:enumeration value="extremeSnowOnGround"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- =================== Precips Forecast =================== -->
	<xs:complexType name="precipTypeForecast">
		<xs:sequence>
			<xs:element name="textSummary" type="textSummaryType"/>
			<xs:element name="precipType" type="precipSubTypeForecast" maxOccurs="unbounded"/>
			<xs:element name="accumulation" type="accumulationType" minOccurs="0" maxOccurs="4"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="precipSubTypeForecast">
		<xs:simpleContent>
			<xs:extension base="validPrecipAbbreviatedCodes">
				<xs:attribute name="end" type="validPrecipSubTypeForecastHours"/>
				<xs:attribute name="start" type="validPrecipSubTypeForecastHours"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="validPrecipSubTypeForecastHours">
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value=""/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:integer"/>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<xs:simpleType name="validPrecipAbbreviatedCodes">
		<xs:restriction base="xs:string">
			<xs:enumeration value="rain"/>
			<xs:enumeration value="snow"/>
			<xs:enumeration value="freezing rain"/>
			<xs:enumeration value="drizzle"/>
			<xs:enumeration value="rain and snow"/>
			<xs:enumeration value="rain and freezing rain"/>
			<xs:enumeration value="rain and drizzle"/>
			<xs:enumeration value="snow and freezing rain"/>
			<xs:enumeration value="snow and drizzle"/>
			<xs:enumeration value="freezing rain and drizzle"/>
			<xs:enumeration value="pluie"/>
			<xs:enumeration value="neige"/>
			<xs:enumeration value="pluie verglaçante"/>
			<xs:enumeration value="bruine"/>
			<xs:enumeration value="pluie et neige"/>
			<xs:enumeration value="pluie et pluie verglaçante"/>
			<xs:enumeration value="pluie et bruine"/>
			<xs:enumeration value="neige et pluie verglaçante"/>
			<xs:enumeration value="neige et bruine"/>
			<xs:enumeration value="pluie verglaçante et bruine"/>
			<xs:enumeration value=""/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="accumulationType">
		<xs:sequence>
			<xs:element name="name" type="validAccumulationNames"/>
			<xs:element name="amount" type="precipType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="validAccumulationNames">
		<xs:restriction base="xs:string">
			<xs:enumeration value="snow"/>
			<xs:enumeration value="rain"/>
			<xs:enumeration value="freezing"/>
			<xs:enumeration value="ice pellets"/>
			<xs:enumeration value="freezing rain"/>
			<xs:enumeration value="neige"/>
			<xs:enumeration value="pluie"/>
			<xs:enumeration value="verglaçante"/>
			<xs:enumeration value="grésil"/>
			<xs:enumeration value="pluie verglaçante"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- =================== Cloud Precip =================== -->
	<xs:complexType name="cloudPrecipType">
		<xs:sequence>
			<xs:element name="textSummary" type="textSummaryType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="popType">
		<xs:simpleContent>
			<xs:extension base="validPops">
				<xs:attribute name="units" type="validPopUnits"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="validPops">
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value=""/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:integer">
					<xs:minInclusive value="0"/>
					<xs:maxInclusive value="100"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<xs:simpleType name="validPopUnits">
		<xs:restriction base="xs:string">
			<xs:enumeration value="%"/>
			<xs:enumeration value=""/>
		</xs:restriction>
	</xs:simpleType>
	<!-- ======================= Abbreviated Forecast ======================== -->
	<xs:complexType name="abbreviatedForecastType">
		<xs:sequence>
			<xs:element name="iconCode" type="iconCodeType"/>
			<xs:element name="pop" type="popType"/>
			<xs:element name="textSummary" type="textSummaryType"/>
		</xs:sequence>
	</xs:complexType>

	<xs:simpleType name="periodRangeType">
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:pattern value="\d{4}\-\d{4}"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value=""/>
				</xs:restriction>
			</xs:simpleType>
		</xs:union>
   </xs:simpleType>
	<!-- =================== Snow Level =================== -->
	<xs:complexType name="snowLevelType">
		<xs:sequence minOccurs="0">
			<xs:element name="textSummary" type="textSummaryType"/>
		</xs:sequence>
	</xs:complexType>
	<!-- =================== UV =================== -->
	<xs:complexType name="uvType">
		<xs:sequence>
			<xs:element name="index" type="uvIndexType"/>
			<xs:element name="textSummary" type="textSummaryType"/>
		</xs:sequence>
		<xs:attribute name="category" type="uvCategoryType"/>
	</xs:complexType>
	<xs:simpleType name="uvIndexType">
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value=""/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:integer">
					<xs:minInclusive value="0"/>
					<xs:maxInclusive value="12"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<xs:simpleType name="uvCategoryType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="low"/>
			<xs:enumeration value="moderate"/>
			<xs:enumeration value="high"/>
			<xs:enumeration value="very high" />
			<xs:enumeration value="extreme"/>
			<xs:enumeration value="bas" />
			<xs:enumeration value="modéré"/>
			<xs:enumeration value="élevé"/>
			<xs:enumeration value="très élevé"/>
			<xs:enumeration value="extrême"/>
			<xs:enumeration value=""/>
		</xs:restriction>
	</xs:simpleType>
	<!-- =================== Frost =================== -->
	<xs:complexType name="frostType">
		<xs:sequence>
			<xs:element name="textSummary" type="textSummaryType"/>
		</xs:sequence>
	</xs:complexType>
	<!-- =================== RiseSet =================== -->
	<xs:complexType name="riseSetType">
		<xs:sequence>
			<xs:element name="disclaimer" type="xs:string" minOccurs="0"/>
			<xs:element name="dateTime" type="dateStampType" minOccurs="0" maxOccurs="12"/>
		</xs:sequence>
	</xs:complexType>
	<!-- ======================= Regional Normals ======================== -->
	<xs:complexType name="regionalNormalsType">
		<xs:sequence>
			<xs:element name="textSummary" type="textSummaryType" minOccurs="0"/>
			<xs:element name="temperature" type="temperatureType" minOccurs="0" maxOccurs="2"/>
		</xs:sequence>
	</xs:complexType>
	<!-- ======================== Quality Assurance ========================= -->
	<xs:simpleType name="qaValueType">
		<xs:restriction base="xs:integer">
			<xs:enumeration value="10"/>
			<xs:enumeration value="100"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
