<?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="attribute_list.xsd"/>
	<xsd:include schemaLocation="location.xsd"/>
	<xsd:complexType name="basic-instrumentType">
		<xsd:sequence>
			<xsd:element name="description" type="xsd:string" minOccurs="0"/>
			<xsd:element name="instrument-state" type="instrumentStateType"/>
			<!-- Units Information -->
			<xsd:element name="units" type="unitType" minOccurs="0"/>
			<xsd:element name="accuracy" type="xsd:string" minOccurs="0"/>
			<xsd:element name="resolution" type="xsd:string" minOccurs="0"/>
			<!-- Measurement Details -->
			<xsd:element name="sampling-interval" type="xsd:string" minOccurs="0"/>
			<xsd:element name="lower-range" type="xsd:decimal" minOccurs="0"/>
			<xsd:element name="upper-range" type="xsd:decimal" minOccurs="0"/>
		</xsd:sequence>
		<xsd:attribute name="cmml-index" type="xsd:nonNegativeInteger" use="required"/>
	</xsd:complexType>
	<xsd:complexType name="instrumentType">
		<xsd:complexContent>
			<xsd:extension base="basic-instrumentType">
				<xsd:sequence>
					<!-- The instrument-id is set by the client. -->
					<xsd:element name="instrument-id" type="xsd:string" minOccurs="0"/>
					<xsd:element name="point" type="pointType" minOccurs="0"/>
					<xsd:element name="equipment-information" type="equipment-informationType" minOccurs="0"/>
					<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"/>
					<!-- The instrument's calibration histrory -->
					<xsd:element name="calibration-history" type="calibration-historyType" minOccurs="0"/>
					<!-- Roadway information. -->
					<xsd:element name="lane-number" type="xsd:string" minOccurs="0"/>
					<xsd:element name="road-construction" type="road-constructionType" minOccurs="0"/>
					<!-- Shadowing. -->
					<xsd:element name="shadowing" type="shadowingType" minOccurs="0" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="calibration-historyType">
		<xsd:sequence>
			<xsd:element name="calibration" type="calibrationType" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="calibrationType">
		<xsd:sequence>
			<xsd:element name="calibrated-by" type="contactType"/>
			<xsd:element name="comment" type="calibrationCommentType" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="date" type="xsd:date" use="required"/>
	</xsd:complexType>
	<xsd:simpleType name="calibrationCommentType">
		<xsd:restriction base="xsd:string"/>
	</xsd:simpleType>
	<xsd:complexType name="equipment-informationType">
		<xsd:sequence>
			<xsd:element name="manufacturer" type="xsd:string" minOccurs="0"/>
			<xsd:element name="model-number" type="xsd:string" minOccurs="0"/>
			<xsd:element name="serial-number" type="xsd:string" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="road-constructionType">
		<xsd:choice>
			<xsd:element name="road" type="roadType"/>
			<xsd:element name="bridge" type="bridgeType"/>
			<xsd:element name="overpass" type="overpassType"/>
		</xsd:choice>
	</xsd:complexType>
	<xsd:complexType name="roadwayType">
		<xsd:sequence>
			<xsd:element name="surface" type="surfaceType"/>
			<xsd:element name="slope" type="slopeType" minOccurs="0"/>
			<xsd:element name="aspect" type="direction-codeType" minOccurs="0"/>
			<xsd:element name="pavement-surface-elevation" type="elevationType" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="roadType">
		<xsd:complexContent>
			<xsd:extension base="roadwayType">
				<xsd:sequence>
					<xsd:element name="earthwork" type="earthworkType" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="bridgeType">
		<xsd:complexContent>
			<xsd:extension base="roadwayType">
				<xsd:sequence>
					<xsd:element name="material" type="bridge-or-overpass-materialType" minOccurs="0"/>
					<xsd:element name="water-surface-elevation" type="elevationType" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
		<!-- A bridge will always be over water. -->
	</xsd:complexType>
	<xsd:complexType name="overpassType">
		<xsd:complexContent>
			<xsd:extension base="roadwayType">
				<xsd:sequence>
					<xsd:element name="material" type="bridge-or-overpass-materialType" minOccurs="0"/>
					<xsd:element name="lower-roadway-elevation" type="elevationType" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:simpleType name="surfaceType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="PCC"/>
			<xsd:enumeration value="asphalt"/>
			<xsd:enumeration value="asphalt over PCC"/>
			<xsd:enumeration value="other"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="slopeType">
		<xsd:restriction base="xsd:decimal"/>
	</xsd:simpleType>
	<xsd:simpleType name="bridge-or-overpass-materialType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="steel"/>
			<xsd:enumeration value="PCC(solid)"/>
			<xsd:enumeration value="PCC(hollow)"/>
			<xsd:enumeration value="other"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="earthworkType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="cut"/>
			<xsd:enumeration value="fill"/>
			<xsd:enumeration value="neutral"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="shadowingType">
		<xsd:sequence>
			<xsd:element name="shadowing-starts" type="xsd:time"/>
			<xsd:element name="shadowing-ends" type="xsd:time"/>
		</xsd:sequence>
		<xsd:attribute name="start-date" type="xsd:gMonthDay" use="required"/>
		<xsd:attribute name="end-date" type="xsd:gMonthDay" use="required"/>
	</xsd:complexType>
	<xsd:simpleType name="instrumentStateType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="active-operational"/>
			<xsd:enumeration value="active-not-reporting"/>
			<xsd:enumeration value="active-qc-failure"/>
			<xsd:enumeration value="active-element-missing"/>
			<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:complexType name="physical-statusInsType">
		<xsd:complexContent>
			<xsd:extension base="basic-instrumentType">
				<xsd:attribute name="type" type="physical-statusTypeType" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<!-- instruments -->
	<xsd:complexType name="pressureInsType">
		<xsd:complexContent>
			<xsd:extension base="instrumentType">
				<xsd:attribute name="type" type="pressureTypeType" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="windInsType">
		<xsd:complexContent>
			<xsd:extension base="instrumentType">
				<xsd:attribute name="type" type="windTypeType" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="temperatureInsType">
		<xsd:complexContent>
			<xsd:extension base="instrumentType">
				<xsd:attribute name="type" type="temperatureTypeType" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="precipitationInsType">
		<xsd:complexContent>
			<xsd:extension base="instrumentType">
				<xsd:attribute name="type" type="precipitationTypeType" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="radiationInsType">
		<xsd:complexContent>
			<xsd:extension base="instrumentType">
				<xsd:attribute name="type" type="radiationTypeType" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="visibilityInsType">
		<xsd:complexContent>
			<xsd:extension base="instrumentType">
				<xsd:attribute name="type" type="visibilityTypeType" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="pavementInsType">
		<xsd:complexContent>
			<xsd:extension base="instrumentType">
				<xsd:attribute name="type" type="pavementTypeType" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="subsurfaceInsType">
		<xsd:complexContent>
			<xsd:extension base="instrumentType">
				<xsd:sequence>
					<xsd:element name="sensor-depth" type="elevationType"/>
				</xsd:sequence>
				<xsd:attribute name="type" type="subsurfaceTypeType" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="air-qualityInsType">
		<xsd:complexContent>
			<xsd:extension base="instrumentType">
				<xsd:attribute name="type" type="air-qualityTypeType" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="humidityInsType">
		<xsd:complexContent>
			<xsd:extension base="instrumentType">
				<xsd:attribute name="type" type="humidityTypeType" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="snowInsType">
		<xsd:complexContent>
			<xsd:extension base="instrumentType">
				<xsd:attribute name="type" type="snowTypeType" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="weatherInsType">
		<xsd:complexContent>
			<xsd:extension base="instrumentType">
				<xsd:attribute name="type" type="weatherTypeType" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="snapshot-cameraInsType">
		<xsd:complexContent>
			<xsd:extension base="instrumentType">
				<xsd:attribute name="type" type="snapshot-cameraTypeType" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="extensionInsType">
		<xsd:complexContent>
			<xsd:extension base="instrumentType">
				<xsd:attribute name="sensor-name" type="xsd:string" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
</xsd:schema>
