<?xml version = "1.0" encoding = "UTF-8"?>
<xsd:schema xmlns:xsd = "http://www.w3.org/2001/XMLSchema" elementFormDefault = "qualified">
	<xsd:element name="IPC2551Messages">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="RecipeListResponse" type="RecipeListResponse" minOccurs="0" maxOccurs="1" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<!-- Enumerations -->
	<xsd:simpleType name="eRecipeCommandType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="UPLOAD" />
			<xsd:enumeration value="DOWNLOAD" />
			<xsd:enumeration value="DELETE" />
			<xsd:enumeration value="EXECUTE" />
			<xsd:enumeration value="REPLACE" />
			<xsd:enumeration value="QUEUE" />
			<xsd:enumeration value="MODIFY" />
			<xsd:enumeration value="CUSTOM" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="Station">
		<xsd:attribute name="stationId" type="xsd:ID" use="required" />
		<xsd:attribute name="stage" type="xsd:string" use="required" />
		<xsd:attribute name="subStage" type="xsd:string" use="optional" />
		<xsd:attribute name="vendor" type="xsd:string" use="optional" />
		<xsd:attribute name="model" type="xsd:string" use="optional" />
		<xsd:attribute name="version" type="xsd:string" use="optional" />
		<xsd:attribute name="attendence" type="eAttendence" use="optional" />
		<xsd:attribute name="line" type="xsd:string" use="optional" />
		<xsd:attribute name="building" type="xsd:string" use="optional" />
		<xsd:attribute name="site" type="xsd:string" use="optional" />
		<xsd:attribute name="enterprise" type="xsd:string" use="optional" />
	</xsd:complexType>
	<xsd:simpleType name="eAttendence">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="MANUAL" />
			<xsd:enumeration value="AUTOMATED" />
			<xsd:enumeration value="ATTENDED_AUTOMATED" />
		</xsd:restriction>
	</xsd:simpleType>
<!-- Complex Types - Events -->
	<xsd:complexType name="RecipeListResponse">
		<xsd:sequence>
			<xsd:element name="Extensions" type="Extension" minOccurs="0" />
			<xsd:element name="Station" type="Station" minOccurs="0" />
			<xsd:element name="Recipe" type="Recipe" minOccurs="1" />
		</xsd:sequence>
			<xsd:attribute name="authority" type = "xsd:string"/>
			<xsd:attribute name="requestRef" use="required" type="xsd:IDREF" /> 
			<xsd:attribute name="sessionId" use="required" type="xsd:string" /> 
			<xsd:attribute name="dateTime" use="required" type="xsd:dateTime" /> 
			<xsd:attribute name="instructionType" use="required" type="xsd:string" /> 
			<xsd:attribute name="instructionId" type="xsd:string" /> 
			<xsd:attribute name="instructionRevision" type="xsd:string" /> 
	</xsd:complexType>
	<xsd:complexType name="Recipe">
		<xsd:attribute name="recipeId" type="xsd:ID" use="required" />
		<xsd:attribute name="name" type="xsd:string" use="required" />
		<xsd:attribute name="zoneList" type="xsd:string" use="optional" />
		<xsd:attribute name="laneList" type="xsd:string" use="optional" />
		<xsd:attribute name="revision" type="xsd:string" use="optional" />
		<xsd:attribute name="version" type="xsd:string" use="optional" />
		<xsd:attribute name="dateCode" type="xsd:dateTime" use="optional" />
	</xsd:complexType>
	<xsd:complexType name="Extension">
		<xsd:sequence>
			<xsd:element name="Extension" type="xsd:anyType" />
		</xsd:sequence>
	</xsd:complexType>
</xsd:schema>
