<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="urn:epcglobal:rm:xsd:1" elementFormDefault="unqualified" attributeFormDefault="unqualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:epcglobal="urn:epcglobal:xsd:1" xmlns:rm="urn:epcglobal:rm:xsd:1">
	<xsd:annotation>
		<xsd:documentation xml:lang="en">
			<epcglobal:copyright>Copyright&#169;2005-2006 Epcglobal Inc., All Rights Reserved.</epcglobal:copyright>
			<epcglobal:disclaimer>EPCglobal Inc., its members, officers, directors, employees, or
                agents shall not be liable for any injury, loss, damages, financial or otherwise,
                arising from, related to, or caused by the use of this document. The use of said
                document shall constitute your express consent to the foregoing exculpation.</epcglobal:disclaimer>
			<epcglobal:specification>Reader Management (RM) version 1.0</epcglobal:specification>
		</xsd:documentation>
	</xsd:annotation>
	<xsd:include schemaLocation="RmCommon.xsd"/>
	<xsd:import namespace="urn:epcglobal:xsd:1" schemaLocation="./EpcGlobal.xsd"/>
	<!-- Reader Management Alarm -->
	<xsd:element name="alarm" type="rm:AlarmType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en"> This element defines a reader management alarm.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="ReaderType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">Reader Information</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="readerEPC" type="epcglobal:EPC" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation xml:lang="en">Reader EPC</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="readerName" type="xsd:string" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation xml:lang="en">Reader name</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="readerHandle" type="xsd:int" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation xml:lang="en">Reader handle</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="readerRole" type="xsd:string" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation xml:lang="en">Reader role</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="readerTime" type="rm:readerTime" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation xml:lang="en">Reader time</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<!-- Alarms -->
	<!-- Alarm types (including their base types) are ordered in alphabetical order -->
	<xsd:complexType name="AlarmType" abstract="true">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">Alarm is the base class for all of classes within the RMP object model that define the contents of alarm messages</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="epcglobal:Document">
				<xsd:sequence>
					<xsd:element name="id" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">id of this alarm.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="reader" type="rm:ReaderType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">Reader sending the alarm</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="name" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">Type of Alarm message</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="level" type="rm:AlarmLevelParamType">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">Severity level assigned to the alarm</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="suppressCount" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">Number of times the generation of this Alarm has been suppressed</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:any namespace="##any" processContents="lax">
						<xsd:annotation>
							<xsd:documentation>For standard and vendor extensions</xsd:documentation>
						</xsd:annotation>
					</xsd:any>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FailedEraseAlarmType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">This alarm's receipt signals a tag erase failure.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="rm:AlarmType">
				<xsd:sequence>
					<xsd:element name="readPointName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">Read point where the erase failure occurred.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="failedEraseCount" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">Value of AntennaReadPoint.FailedEraseCount element after the erase failure occurred.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="noiseLevel" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">Value of the AntennaReadPoint.NoiseLevel element when the erase failure occurred.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FailedKillAlarmType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">This alarm's receipt signals a tag kill failure.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="rm:AlarmType">
				<xsd:sequence>
					<xsd:element name="readPointName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">Read point where the kill failure occurred.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="failedKillCount" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">Value of AntennaReadPoint.FailedKillCount element after the kill failure occurred.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="noiseLevel" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">Value of the AntennaReadPoint.NoiseLevel element when the kill failure occurred.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FailedLockAlarmType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">This alarm's receipt signals a tag lock failure.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="rm:AlarmType">
				<xsd:sequence>
					<xsd:element name="readPointName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">Read point where the lock failure occurred.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="failedLockCount" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">Value of AntennaReadPoint.FailedLockCount element after the lock failure occurred.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="noiseLevel" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">Value of the AntennaReadPoint.NoiseLevel element when the lock failure occurred.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FailedMemReadAlarmType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">This alarm's receipt signals a tag user-memory read failure.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="rm:AlarmType">
				<xsd:sequence>
					<xsd:element name="readPointName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">Read point where the memory read failure occurred.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="failedMemReadCount" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">Value of AntennaReadPoint.FailedMemReadCount element after the memory read failure occurred.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="noiseLevel" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">Value of the AntennaReadPoint.NoiseLevel element when the memory read failure occurred.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FailedWriteAlarmType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">This alarm's receipt signals a tag write failure.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="rm:AlarmType">
				<xsd:sequence>
					<xsd:element name="readPointName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">Read point where the write failure occurred.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="failedWriteCount" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">Value of AntennaReadPoint.FailedWriteCount element after the write failure occurred.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="noiseLevel" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">Value of the AntennaReadPoint.NoiseLevel element when the write failure occurred.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FreeMemoryAlarmType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">This alarm's receipt signals the movement of a reader device's free memory (represented in the abstract model by ReaderDevice.FreeMemory) below a specified threshold value.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="rm:AlarmType">
				<xsd:sequence>
					<xsd:element name="freeMemory" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">Value of ReaderDevice.FreeMemory when the alarm was triggered.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="IOPortOperStatusAlarmType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">This alarm's receipt signals a change in the operational status of a Reader's IO Port. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="rm:TTOperStatusAlarmType">
				<xsd:sequence>
					<xsd:element name="iOPortName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">IO port name.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="NotificationChannelOperStatusAlarmType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">This alarm's receipt signals a change in the operational status of one of a Reader's notification channels.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="rm:TTOperStatusAlarmType">
				<xsd:sequence>
					<xsd:element name="notificationChannelName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation xml:lang="en"> Notification channel name.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ReaderDeviceOperStatusAlarmType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">This alarm's receipt signals a change in the operational status of a Reader. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="rm:TTOperStatusAlarmType"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ReadPointOperStatusAlarmType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">This alarm's receipt signals a change in the operational status of one of a Reader's Read Points. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="rm:TTOperStatusAlarmType">
				<xsd:sequence>
					<xsd:element name="readPointName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation xml:lang="en"> Read point name.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="SourceOperStatusAlarmType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">This alarm's receipt signals a change in the operational status of a logical source of EPC data on a Reader. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="rm:TTOperStatusAlarmType">
				<xsd:sequence>
					<xsd:element name="sourceName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation xml:lang="en"> Source name.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="TTOperStatusAlarmType" abstract="true">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">Base class for all transition triggered Operational Status Alarms. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="rm:AlarmType">
				<xsd:sequence>
					<xsd:element name="fromState" type="rm:OperationalStatusParamType">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">From state of the transition.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="toState" type="rm:OperationalStatusParamType">
						<xsd:annotation>
							<xsd:documentation xml:lang="en">To state of the transition.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
</xsd:schema>

