<?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="instrument.xsd"/>
	<xsd:complexType name="location-metadataType">
		<xsd:complexContent>
			<xsd:extension base="originType">
				<xsd:choice>
					<xsd:element name="station-metadata" type="station-metadataType"/>
					<xsd:element name="region-metadata" type="region-metadataType"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="base-metadataType">
		<xsd:sequence>
			<!-- Mandatory field when creating a new base-metadataType entry are:
             * name
             * description
             * timezone
             * data owner
      -->
			<xsd:element name="name" type="xsd:string"/>
			<xsd:element name="description" type="xsd:string"/>
			<xsd:element name="city" type="xsd:string" minOccurs="0"/>
			<xsd:element name="country" type="ISO-country-codeType"/>
			<xsd:choice>
				<xsd:element name="province" type="CA-province-codeType"/>
				<xsd:element name="state" type="US-state-codeType"/>
			</xsd:choice>
			<xsd:element name="climatic-zone" type="xsd:string" minOccurs="0"/>
			<xsd:element name="district" type="xsd:string" minOccurs="0"/>
			<xsd:element name="timezone" type="timezoneType"/>
			<!-- Contacts -->
			<xsd:element name="data-owner" type="contactType"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="region-metadataType">
		<xsd:complexContent>
			<xsd:extension base="base-metadataType">
				<xsd:choice>
					<xsd:element name="area" type="areaType"/>
					<xsd:element name="route" type="linestringType"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
		<!-- When creating a region-metadataType entry an area or route is required. -->
	</xsd:complexType>
	<xsd:complexType name="station-metadataType">
		<xsd:complexContent>
			<xsd:extension base="base-metadataType">
				<xsd:sequence>
					<!-- Station location, including latitude, longitude and elevation. -->
					<xsd:element name="point" type="pointType" minOccurs="0"/>
					<!-- Station state -->
					<xsd:element name="station-state" type="stationStateType"/>
					<!-- Station category and type. -->
					<xsd:element name="category" type="station-categoryType" minOccurs="0"/>
					<xsd:element name="type" type="station-typeType" minOccurs="0"/>
					<!-- Important Dates -->
					<xsd:element name="installation-date" type="xsd:date" minOccurs="0"/>
					<xsd:element name="commission-date" type="xsd:date" minOccurs="0"/>
					<xsd:element name="last-maintenance-date" type="xsd:date" minOccurs="0"/>
					<xsd:element name="last-inspection-date" type="xsd:date" minOccurs="0"/>
					<!-- Contacts -->
					<xsd:element name="station-owner" type="contactType" minOccurs="0"/>
					<xsd:element name="station-maintainer" type="contactType" minOccurs="0"/>
					<!-- RPU -->
					<xsd:element name="rpu" type="rpuType" minOccurs="0"/>
					<!-- Measurement information. -->
					<xsd:element name="reporting-frequency" type="xsd:string" minOccurs="0"/>
					<!-- Vegetation -->
					<xsd:element name="vegetation" type="vegetationType" minOccurs="0" maxOccurs="unbounded"/>
					<!-- Instruments -->
					<xsd:choice maxOccurs="unbounded">
						<xsd:element name="pressure-instrument" type="pressureInsType"/>
						<xsd:element name="wind-instrument" type="windInsType"/>
						<xsd:element name="temperature-instrument" type="temperatureInsType"/>
						<xsd:element name="precipitation-instrument" type="precipitationInsType"/>
						<xsd:element name="radiation-instrument" type="radiationInsType"/>
						<xsd:element name="visibility-instrument" type="visibilityInsType"/>
						<xsd:element name="pavement-instrument" type="pavementInsType"/>
						<xsd:element name="subsurface-instrument" type="subsurfaceInsType"/>
						<xsd:element name="air-quality-instrument" type="air-qualityInsType"/>
						<xsd:element name="humidity-instrument" type="humidityInsType"/>
						<xsd:element name="snow-instrument" type="snowInsType"/>
						<xsd:element name="weather-instrument" type="weatherInsType"/>
						<xsd:element name="snapshot-camera-instrument" type="snapshot-cameraInsType"/>
						<xsd:element name="extension-instrument" type="extensionInsType"/>
					</xsd:choice>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
		<!-- When creating a station-metadataType entry a point is required. -->
	</xsd:complexType>
	<xsd:complexType name="vegetationType">
		<xsd:sequence>
			<xsd:element name="type" type="xsd:string" minOccurs="0"/>
			<xsd:element name="age" type="xsd:string" minOccurs="0"/>
			<xsd:element name="height" type="xsd:string" minOccurs="0"/>
			<xsd:element name="proximity" type="xsd:string" minOccurs="0"/>
			<xsd:element name="direction" type="direction-codeType" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:simpleType name="timeUnitsType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="h"/>
			<xsd:enumeration value="min"/>
			<xsd:enumeration value="s"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="rpuType">
		<xsd:sequence>
			<xsd:element name="equipment-information" type="equipment-informationType" minOccurs="0"/>
			<xsd:element name="ip-address" type="ip-addressType" minOccurs="0"/>
			<xsd:element name="phone-number" type="phone-numberType" minOccurs="0"/>
			<xsd:element name="physical-status" type="physical-statusInsType" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="cmml-index" type="xsd:nonNegativeInteger" use="required"/>
	</xsd:complexType>
	<xsd:complexType name="contactType">
		<xsd:sequence>
			<xsd:element name="name" type="non-emptyString"/>
			<xsd:element name="address" type="xsd:string" minOccurs="0"/>
			<xsd:element name="phone-number" type="phone-numberType" minOccurs="0"/>
			<xsd:element name="email" type="emailType" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:simpleType name="station-categoryType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="permanent"/>
			<xsd:enumeration value="mobile"/>
			<xsd:enumeration value="transportable"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="station-typeType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="automatic"/>
			<xsd:enumeration value="staffed"/>
			<xsd:enumeration value="unknown"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="timezoneType">
		<xsd:simpleContent>
			<xsd:extension base="timezonetypeType">
				<xsd:attribute name="offset" type="offsetType" use="required"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>
	<xsd:simpleType name="stationStateType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="active-operational"/>
			<xsd:enumeration value="active-testing"/>
			<xsd:enumeration value="active-suppressed"/>
			<xsd:enumeration value="active-not-reporting"/>
			<xsd:enumeration value="inactive-uninstalled"/>
			<xsd:enumeration value="inactive-retired"/>
			<xsd:enumeration value="inactive-suppressed"/>
			<xsd:enumeration value="inactive-scheduled-maintenance"/>
			<xsd:enumeration value="inactive-unscheduled-maintenance"/>
		</xsd:restriction>
	</xsd:simpleType>
</xsd:schema>
