<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="urn:epcglobal:rm:xsd:1" elementFormDefault="unqualified" attributeFormDefault="unqualified" version="1.0" xmlns:rm="urn:epcglobal:rm:xsd:1" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<xsd:annotation>
		<xsd:documentation xml:lang="en">
		</xsd:documentation>
	</xsd:annotation>
	<!-- Reader Management types -->
	<!-- types are ordered in alphabetical order -->
	<xsd:annotation>
		<xsd:documentation xml:lang="en"> Reader management common types. All types end with the
            suffix "Type". All the command parameter or reply return value reference types are
            suffixed with "ParamType". All named objects are referenced using "name". For example,
            NotificationChannelParamType contains a reference (its name) instead of actual notification channel
            itself.</xsd:documentation>
	</xsd:annotation>
	<xsd:simpleType name="AddressParamType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">The address for a channel</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:anyURI"/>
	</xsd:simpleType>
	<xsd:simpleType name="AdministrativeStatusParamType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en"> administrative status</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="UP"/>
			<xsd:enumeration value="DOWN"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="AlarmChannelListParamType">
		<xsd:annotation>
			<xsd:documentation> A list of alarm channels</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="list">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="value" type="rm:AlarmChannelParamType" maxOccurs="unbounded"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:simpleType name="AlarmChannelParamType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">The name of a alarm channel.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string"/>
	</xsd:simpleType>
	<xsd:simpleType name="AlarmControlParamType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">The name of an alarm control.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string"/>
	</xsd:simpleType>
	<xsd:simpleType name="AlarmLevelParamType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en"> Alarm level</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="EMERGENCY"/>
			<xsd:enumeration value="ALERT"/>
			<xsd:enumeration value="CRITICAL"/>
			<xsd:enumeration value="ERROR"/>
			<xsd:enumeration value="WARNING"/>
			<xsd:enumeration value="NOTICE"/>
			<xsd:enumeration value="INFORMATIONAL"/>
			<xsd:enumeration value="DEBUG"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="EdgeTriggeredAlarmControlParamType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">The name of an edge triggered alarm control.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="rm:AlarmControlParamType"/>
	</xsd:simpleType>
	<xsd:simpleType name="EdgeTriggeredAlarmDirectionParamType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en"> Edge triggered alarm direction.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="RISING"/>
			<xsd:enumeration value="FALLING"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="EdgeTriggeredAlarmStatusParamType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en"> Edge triggered alarm status.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="ARMED"/>
			<xsd:enumeration value="FIRED"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="IOPortParamType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">The name of an IO port.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string"/>
	</xsd:simpleType>
	<xsd:simpleType name="OperationalStatusParamType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en"> operational status</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="UNKNOWN"/>
			<xsd:enumeration value="UP"/>
			<xsd:enumeration value="DOWN"/>
			<xsd:enumeration value="OTHER"/>
			<xsd:enumeration value="ANY"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="readerTime">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">Time format</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="readerNowTick" type="xsd:string" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation xml:lang="en">time in ticks</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="readerNowUTC" type="xsd:dateTime" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation xml:lang="en"> UTC time</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:simpleType name="TTOperationalStatusAlarmControlParamType">
		<xsd:annotation>
			<xsd:documentation xml:lang="en">The name of a transition triggered status alarm control.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="rm:AlarmControlParamType"/>
	</xsd:simpleType>
</xsd:schema>

