<?xml version = "1.0" encoding = "UTF-8"?>
<xsd:schema xmlns:xsd = "http://www.w3.org/2001/XMLSchema" 
	 version = "2004-11-08">
	<xsd:element name = "ProcessStepStatus">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "Error" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "Symptom" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "Indictment" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "RegionOfInterest" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "Measurement" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "Component" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "Signal" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "Extensions" minOccurs = "0"/>
			</xsd:sequence>
			<xsd:attribute name = "dateTime" use = "required" type = "xsd:dateTime"/>
			<xsd:attribute name = "itemInstanceId" use = "required" type = "xsd:string"/>
			<xsd:attribute name = "sessionRef" use = "required" type = "xsd:string"/>
			<xsd:attribute name = "itemProcessRef" use = "required" type = "xsd:string"/>
			<xsd:attribute name = "processStepId" use = "required" type = "xsd:string"/>
			<xsd:attribute name = "status" use = "required">
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:enumeration value = "ERROR"/>
						<xsd:enumeration value = "FAILED"/>
						<xsd:enumeration value = "NOTEST"/>
						<xsd:enumeration value = "PASSED"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "imageId" type = "xsd:string"/>
			<xsd:attribute name = "sequence" type = "xsd:positiveInteger"/>
			<xsd:attribute name = "comment" type = "xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "Error">
		<xsd:complexType>
			<xsd:attribute name = "errorId" use = "required" type = "xsd:string"/>
			<xsd:attribute name = "description" type = "xsd:string"/>
			<xsd:attribute name = "recipeRef" type = "xsd:string"/>
			<xsd:attribute name = "moduleRef" type = "xsd:string"/>
			<xsd:attribute name = "recipeStep" type = "xsd:string"/>
			<xsd:attribute name = "lane" type = "xsd:string"/>
			<xsd:attribute name = "zone" type = "xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "Symptom">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "MeasurementRef" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "RegionRef" minOccurs = "0" maxOccurs = "unbounded"/>
			</xsd:sequence>
			<xsd:attribute name = "symptomId" use = "required" type = "xsd:string"/>
			<xsd:attribute name = "symptomKey" use = "required" type = "xsd:string"/>
			<xsd:attribute name = "category" type = "xsd:string"/>
			<xsd:attribute name = "description" type = "xsd:string"/>
			<xsd:attribute name = "confidence">
				<xsd:simpleType>
					<xsd:restriction base = "xsd:nonNegativeInteger">
						<xsd:maxInclusive value = "100"/>
						<xsd:minInclusive value = "0"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "Indictment">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "MeasurementRef" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "RegionRef" minOccurs = "0" maxOccurs = "unbounded"/>
			</xsd:sequence>
			<xsd:attribute name = "indictmentId" use = "required" type = "xsd:string"/>
			<xsd:attribute name = "indictmentKey" use = "required" type = "xsd:string"/>
			<xsd:attribute name = "category" type = "xsd:string"/>
			<xsd:attribute name = "description" type = "xsd:string"/>
			<xsd:attribute name = "priority" type = "xsd:positiveInteger"/>
			<xsd:attribute name = "confidence">
				<xsd:simpleType>
					<xsd:restriction base = "xsd:nonNegativeInteger">
						<xsd:maxInclusive value = "100"/>
						<xsd:minInclusive value = "0"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "RegionOfInterest">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "Region" minOccurs = "0"/>
				<xsd:element ref = "Point" minOccurs = "0"/>
				<xsd:element ref = "Component" minOccurs = "0"/>
			</xsd:sequence>
			<xsd:attribute name = "regionId" use = "required" type = "xsd:string"/>
			<xsd:attribute name = "frameRef" type = "xsd:string"/>
			<xsd:attribute name = "layer" type = "xsd:string"/>
			<xsd:attribute name = "status">
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:enumeration value = "PASSED"/>
						<xsd:enumeration value = "FAILED"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "Measurement">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:choice>
					<xsd:element ref = "MeasuredNumeric" minOccurs = "0" maxOccurs = "unbounded"/>
					<xsd:element ref = "MeasuredOctet" minOccurs = "0" maxOccurs = "unbounded"/>
				</xsd:choice>
				<xsd:choice>
					<xsd:element ref = "ExpectedNumeric" minOccurs = "0" maxOccurs = "unbounded"/>
					<xsd:element ref = "ExpectedOctet" minOccurs = "0" maxOccurs = "unbounded"/>
				</xsd:choice>
				<xsd:element ref = "Component" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "Signal" minOccurs = "0" maxOccurs = "unbounded"/>
			</xsd:sequence>
			<xsd:attribute name = "measurementId" use = "required" type = "xsd:string"/>
			<xsd:attribute name = "mode" type = "xsd:string"/>
			<xsd:attribute name = "type" type = "xsd:string"/>
			<xsd:attribute name = "sequence" type = "xsd:positiveInteger"/>
			<xsd:attribute name = "status">
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:enumeration value = "PASSED"/>
						<xsd:enumeration value = "FAILED"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "MeasuredNumeric">
		<xsd:complexType>
			<xsd:attribute name = "value" use = "required" type = "xsd:double"/>
			<xsd:attribute name = "units" type = "xsd:string"/>
			<xsd:attribute name = "decade" type = "xsd:double"/>
			<xsd:attribute name = "position" type = "xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "MeasuredOctet">
		<xsd:complexType>
			<xsd:attribute name = "value" use = "required" type = "xsd:string"/>
			<xsd:attribute name = "position" type = "xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "ExpectedNumeric">
		<xsd:complexType>
			<xsd:attribute name = "nominal" type = "xsd:double"/>
			<xsd:attribute name = "units" type = "xsd:string"/>
			<xsd:attribute name = "decade" type = "xsd:double"/>
			<xsd:attribute name = "minimum" type = "xsd:double"/>
			<xsd:attribute name = "maximum" type = "xsd:double"/>
			<xsd:attribute name = "comparator">
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:enumeration value = "EQ"/>
						<xsd:enumeration value = "NE"/>
						<xsd:enumeration value = "GT"/>
						<xsd:enumeration value = "LT"/>
						<xsd:enumeration value = "GE"/>
						<xsd:enumeration value = "LE"/>
						<xsd:enumeration value = "GTLT"/>
						<xsd:enumeration value = "GELE"/>
						<xsd:enumeration value = "GTLE"/>
						<xsd:enumeration value = "GELT"/>
						<xsd:enumeration value = "LTGT"/>
						<xsd:enumeration value = "LEGE"/>
						<xsd:enumeration value = "LTGE"/>
						<xsd:enumeration value = "LEGT"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "position" type = "xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "ExpectedOctet">
		<xsd:complexType>
			<xsd:attribute name = "value" use = "required" type = "xsd:string"/>
			<xsd:attribute name = "position" type = "xsd:string"/>
			<xsd:attribute name = "caseSensitive" type = "boolean"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "Region">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "Orientation" minOccurs = "0"/>
			</xsd:sequence>
			<xsd:attribute name = "units" use = "required">
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:enumeration value = "MM"/>
						<xsd:enumeration value = "INCH"/>
						<xsd:enumeration value = "PIXEL"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "point1X" use = "required" type = "xsd:double"/>
			<xsd:attribute name = "point1Y" use = "required" type = "xsd:double"/>
			<xsd:attribute name = "point2X" type = "xsd:double"/>
			<xsd:attribute name = "point2Y" type = "xsd:double"/>
			<xsd:attribute name = "diameter" type = "xsd:double"/>
			<xsd:attribute name = "decade" default = "0" type = "xsd:double"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "Orientation">
		<xsd:complexType>
			<xsd:attribute name = "value" use = "required" type = "xsd:double"/>
			<xsd:attribute name = "units" use = "required">
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:enumeration value = "DEGREES"/>
						<xsd:enumeration value = "RADIANS"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "Point">
		<xsd:complexType>
			<xsd:attribute name = "pointX" use = "required" type = "xsd:double"/>
			<xsd:attribute name = "pointY" use = "required" type = "xsd:double"/>
			<xsd:attribute name = "units" use = "required">
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:enumeration value = "MM"/>
						<xsd:enumeration value = "INCH"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "decade" default = "0" type = "xsd:double"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "Component">
		<xsd:complexType>
			<xsd:attribute name = "designator" use = "required" type = "xsd:string"/>
			<xsd:attribute name = "imageId" type = "xsd:string"/>
			<xsd:attribute name = "subassembly" type = "xsd:string"/>
			<xsd:attribute name = "type" type = "xsd:string"/>
			<xsd:attribute name = "layer">
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:enumeration value = "TOP"/>
						<xsd:enumeration value = "BOTTOM"/>
						<xsd:enumeration value = "INTERNAL"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "subcomponent" type = "xsd:string"/>
			<xsd:attribute name = "termination" type = "xsd:string"/>
			<xsd:attribute name = "partId" type = "xsd:string"/>
			<xsd:attribute name = "package" type = "xsd:string"/>
			<xsd:attribute name = "jointType" type = "xsd:string"/>
			<xsd:attribute name = "jointSubtype" type = "xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "Signal">
		<xsd:complexType>
			<xsd:attribute name = "signalId" use = "required" type = "xsd:string"/>
			<xsd:attribute name = "imageId" type = "xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "RegionRef" type = "xsd:string"/>
	<xsd:element name = "MeasurementRef" type = "xsd:string"/>
	<xsd:element name = "Extensions" type = "xsd:anyType"/>
</xsd:schema>
