<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by Todd Billings (ENVIRONMENT CANADA) -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xsd:include schemaLocation="origin.xsd"/>
	<xsd:complexType name="locationType">
		<xsd:choice>
			<xsd:element name="point" type="pointType"/>
			<xsd:element name="area" type="areaType"/>
			<xsd:element name="route" type="linestringType"/>
		</xsd:choice>
	</xsd:complexType>
	<xsd:complexType name="forecast-locationType">
		<xsd:sequence>
			<xsd:element name="location-key" type="xsd:string"/>
			<xsd:choice>
				<xsd:element name="point" type="pointType"/>
				<xsd:element name="city" type="cityType"/>
				<xsd:element name="nws-zone" type="nws-zoneType"/>
				<xsd:element name="area" type="areaType"/>
				<xsd:element name="station" type="originType"/>
				<xsd:element name="route" type="linestringType"/>
			</xsd:choice>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="pointType">
		<xsd:all>
			<xsd:element name="latitude" type="xsd:decimal"/>
			<xsd:element name="longitude" type="xsd:decimal"/>
			<xsd:element name="elevation" type="elevationType"/>
		</xsd:all>
	</xsd:complexType>
	<xsd:complexType name="elevationType">
		<xsd:simpleContent>
			<xsd:extension base="xsd:decimal">
				<xsd:attribute name="datum" type="datumType" use="required"/>
				<xsd:attribute name="units" type="elevation-unitsType" use="required"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>
	<xsd:simpleType name="datumType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="station-reference-level"/>
			<xsd:enumeration value="mean-sea-level"/>
			<xsd:enumeration value="pavement-surface"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="elevation-unitsType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="cm"/>
			<xsd:enumeration value="in"/>
			<xsd:enumeration value="ft"/>
			<xsd:enumeration value="m"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="areaType">
		<xsd:choice>
			<xsd:element name="circle" type="circleType"/>
			<xsd:element name="rectangle" type="rectangleType"/>
			<xsd:element name="polygon" type="polygonType"/>
		</xsd:choice>
	</xsd:complexType>
	<xsd:complexType name="linestringType">
		<xsd:sequence>
			<xsd:element name="point" type="pointType" minOccurs="2" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="circleType">
		<xsd:all>
			<xsd:element name="point" type="pointType"/>
			<xsd:element name="radius" type="radiusType"/>
		</xsd:all>
	</xsd:complexType>
	<xsd:complexType name="radiusType">
		<xsd:simpleContent>
			<xsd:extension base="xsd:decimal">
				<xsd:attribute name="radius-units" type="radius-unitsType" use="required"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>
	<xsd:simpleType name="radius-unitsType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="statute-miles"/>
			<xsd:enumeration value="kilometer"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="rectangleType">
		<xsd:sequence>
			<xsd:element name="point" type="pointType" minOccurs="2" maxOccurs="2"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="polygonType">
		<xsd:sequence>
			<xsd:element name="point" type="pointType" minOccurs="3" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="cityType">
		<xsd:simpleContent>
			<xsd:extension base="xsd:string">
				<xsd:attribute name="province" type="provinceType" use="required"/>
				<xsd:attribute name="summarization" type="summarizationType" use="optional"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>
	<xsd:complexType name="nws-zoneType">
		<xsd:simpleContent>
			<xsd:extension base="xsd:string">
				<xsd:attribute name="province" type="provinceType" use="required"/>
				<xsd:attribute name="summarization" type="summarizationType" use="optional"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>
	<xsd:simpleType name="provinceType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[A-Z][A-Z]"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="summarizationType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="none"/>
			<xsd:enumeration value="mean"/>
			<xsd:enumeration value="medium"/>
			<xsd:enumeration value="mode"/>
			<xsd:enumeration value="maximum"/>
			<xsd:enumeration value="minimum"/>
		</xsd:restriction>
	</xsd:simpleType>
</xsd:schema>
