<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="urn:semi-org:xsd.E133.V0318.PCSAE" xmlns:pcsae="urn:semi-org:xsd.E133.V0318.PCSAE" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:semi-org:xsd.E133.V0318.PCSAE" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<!--

This document and the information contained herein is provided on an "AS IS" basis and to the maximum extent permitted by applicable law, SEMI provides the document AS IS AND WITH ALL FAULTS, and hereby disclaims all other warranties and conditions, either express, implied or statutory, including, but not limited to, any (if any) implied warranties, duties or conditions of merchantability, of fitness for a particular purpose, of accuracy or completeness of responses, of results, of workmanlike effort, of lack of viruses, and of lack of negligence, all with regard to the document. ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHTS WITH REGARD TO THE DOCUMENT.
 
IN NO EVENT WILL SEMI BE LIABLE TO ANY OTHER PARTY FOR THE COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT RELATING TO THIS DOCUMENT, WHETHER OR NOT SUCH PARTY HAD ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.

-->
	<!-- I M P O R T S -->
	<!-- T Y P E   D E F I N I T I O N S -->
	<xsd:simpleType name="AETypeSelector" final="#all">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="PCS"/>
			<xsd:enumeration value="R2R"/>
			<xsd:enumeration value="FDD"/>
			<xsd:enumeration value="FCC"/>
			<xsd:enumeration value="FPP"/>
			<xsd:enumeration value="SPC"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="Instruction" final="#all">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="PCSAnalyze"/>
			<xsd:enumeration value="PCSStartJob"/>
			<xsd:enumeration value="PCSAddMoreData"/>
			<xsd:enumeration value="PCSEndJob"/>
			<xsd:enumeration value="PCSJobCompleted"/>
			<xsd:enumeration value="PCSAbortJob"/>
			<xsd:enumeration value="PCSJobAborted"/>
			<xsd:enumeration value="PCSUpdateModel"/>
			<xsd:enumeration value="PCSEvent"/>
			<xsd:enumeration value="PCSProduceLogData"/>
			<xsd:enumeration value="PCSProduceExceptionData"/>
			<xsd:enumeration value="PCSExceptionProduced"/>
			<xsd:enumeration value="PCSPing"/>
			<xsd:enumeration value="PCSCapabilitiesDiscovery"/>
			<xsd:enumeration value="PCSEnable"/>
			<xsd:enumeration value="FDDFault"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="BinCategoryType" final="#all">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="Globals"/>
			<xsd:enumeration value="AnalysisParameters"/>
			<xsd:enumeration value="CalculatedOutputs"/>
			<xsd:enumeration value="LogMessages"/>
			<xsd:enumeration value="ModuleData"/>
			<xsd:enumeration value="ProcessData"/>
			<xsd:enumeration value="SubstrateData"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="PCSAEInstructionType">
		<xsd:annotation>
			<xsd:documentation>PCSAEInstruction for the PCS target</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Instruction" type="pcsae:Instruction" nillable="false" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="Order" type="xsd:int" nillable="false"/>
			<xsd:element name="Extension" type="pcsae:DataItemType" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="Status" type="pcsae:StatusElementType" minOccurs="1" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="PCSAETargetType">
		<xsd:annotation>
			<xsd:documentation>PCSAETarget for PCS messages</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="AEType" type="pcsae:AETypeSelector" nillable="false"/>
			<xsd:element name="AEAlgorithm" type="xsd:string" nillable="false"/>
			<xsd:element name="AEInstance" type="xsd:int" nillable="false"/>
			<xsd:element name="AEOrder" type="xsd:int" nillable="false"/>
			<xsd:element name="Status" type="pcsae:StatusElementType" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="Instructions" type="pcsae:PCSAEInstructionType" nillable="false" minOccurs="1" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="StatusElementType">
		<xsd:annotation>
			<xsd:documentation>StatusElement</xsd:documentation>
			<xsd:documentation>Source      - Represents the document where code is generated from</xsd:documentation>
			<xsd:documentation>Code        - Status Code</xsd:documentation>
			<xsd:documentation>Description - This is a human readable description of the status</xsd:documentation>
			<xsd:documentation>Extension   - For supplier to provide more information</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Source" type="xsd:string" nillable="false"/>
			<xsd:element name="Code" type="xsd:int" block="#all" nillable="false"/>
			<xsd:element name="Description" type="xsd:string" nillable="false"/>
			<xsd:element name="Extension" type="pcsae:DataItemType" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="DataItemType">
		<xsd:annotation>
			<xsd:documentation>Data Type</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Name" type="xsd:string" nillable="false"/>
			<xsd:element name="Value" nillable="false">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:any xmlns="##targetNamespace" processContents="lax"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="DataCollectionType" final="#all">
		<xsd:sequence>
			<xsd:element name="BinCategory" type="pcsae:BinCategoryType" nillable="false"/>
			<xsd:element name="Context" type="pcsae:DataItemType" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="Data" type="pcsae:DataItemType" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="AnalysisEngineDataSetType">
		<xsd:sequence>
			<xsd:element name="PCSJobID" type="xsd:string" nillable="false"/>
			<xsd:element name="PCSAETargets" type="pcsae:PCSAETargetType" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="DataCollections" type="pcsae:DataCollectionType" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="AnalysisEngineDataSet" type="pcsae:AnalysisEngineDataSetType" final="#all"/>
</xsd:schema>
