4729 Data Collection Interface
Proposed Schema & WSDL File Changes
Overview
Background 1
E125-1 Specification for SOAP Binding for Equipment Self Description 2
Changes to E125-1-V0308-Schema.xml 2
Changes to E125-1-V0308-EqSDClientBinding.wsdl 19
Changes to E125-1-V0308-EqSDClientPortType.wsdl 21
Changes to E125-1-V0308-EqSDEquipmentBinding.wsdl 23
Changes to E125-1-V0308-EqSDEquipmentPortType.wsdl 27
E134-1 Specification for SOAP Binding of Data Collection Management 31
Changes to E134-1-V0308-Schema.xsd 31
Changes to E134-1-V0308-DCMClientBinding.wsdl 47
Changes to E134-1-V0308-DCMClientPortType.wsdl 51
Changes to E134-1-V0308-DCMEquipmentBinding.wsdl 55
Changes to E134-1-V0308-DCMEquipmentPortType.wsdl 61
E138 XML Semiconductor Common Components 66
Changes to E138-1-V0709-Schema.xsd 66
Background
This document contains copies of the proposed new schema and WSDL files for SEMI E125.1, E134.1, and E138. The contents of this document are provided in support of the 4729 ballot proposal to illustrate the changes it proposes. These are identified with blue additions and deletions markings. The actual proposed schema and WSDL files are attached separately to the ballot proposal. Those files can be used by any XML tool to check the schemas, generate code, etc. Any technical differences between the contents of this file and those schema and WSDL files are unintended.
2
E125-1 Specification for SOAP Binding for Equipment Self Description
Changes to E125-1-V0308-Schema.xml
Notes:
· All proposed additions to the standard are denoted in blue underline and deletions are denoted with blue and doublestrikethrough.
· Issues are associated with line numbers for all schema and WSDL files.
Task Force Issues for E125.x (schema):
Issue / Description / Sections Affected /E125.0-184
Add required Severity code enumeration / Table 49, exception severity attribute needs to be required (it is already required in the schema.
The severity should become an enumerated list.
The solution to this issue also covers issue 004 / Lines 418-425
E125.0-210
Data types / Move DataTypes from E125 and DataValueTypes from E134 to E138 (common components) / Lines 33-220, 249-271, 328-329, 335, 461, 470
E125.0-215
Update Linkages / Update all links to schema files and all header version information in the schemas and wsdl files. Note that the name of the E120 schema file changed in 2008 Cycle 4. Need to update linkage. / Lines 2-5, 18-20
E125.0-221
Exception data / Improve Exception data by replacing setData and clearData (which define unique parameters for each exception) with a set of parameter references, reusing parameters defined elsewhere in the metadata. / Lines 430-437, 442
E125.1-059
xpath / The line “<xsd:field xpath="@id"/>” identifies an attribute “id”, this attribute does not exist. The correct attribute name should be “stateMachineId”
>This also corrects issue E125.1-060
Also corrected other xpath issues, some required by other changes. / Lines 482, 486, 482, 486, 511-513, 553, 557, 561, 604, 611, 615, 622, 626, 641
E125.1-061
standardVersion / In the definition of SEMIObjTypeReferenceType “standardVersion” is defined with use=”optional”, should have been use=”required” / Line 415
E125.1-066
Style normalization and clarity / Adjust XML style to be uniform among the WSDL files and add clarity. This includes renaming some attributes to be more consistent with E134 and to add context. There is also some container removal. / Lines 222-225, 227, 330, 334, 337-340, 345-347, 359-361, 371-373, 382-384, 386-390, 396-397, 399, 401-402, 427, 434, 438, 441-443, 509
E134.0-823
Transient Parameters / Clarify that transient parameters can be included in a trace request.
>Changed isTransient to a three-value enumeration: Transient, Restricted, Unrestricted. Restricted means “non-transient and restricted”. Non-transient means “non-transient and not restricted”. “Non-transient” refers to the union of restricted and unrestricted. Added text to make it clear that transient parameters can be included in exceptions. / Lines 271-278, 281
Align with E125 text / In some cases, the XML schema did not match the E125 specification. Adjustments are proposed to align the two. / Line 378, 401-402
Lines Moved / Some lines of the XML were moved to improve readability, but not altered in the update. Position in the file does not change the affect. / Lines 313-319, 391-398, 403, 426-428
Remove unused items / Remove definitions, namespaces, and aliases that are not used / Lines 23-27, 235, 542-547
Rename file from: “E125-1-V0308-Schema.xsd” To: “E125-1-V0709-Schema.xsd”
2
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns="urn:semi-org:xsd.E125.V0709-1.V0308.esd" xmlns:ccs="urn:semi-org:xsd.CommonComponents.V0305.ccs" xmlns:cem="urn:semi-org:xsd.E120-1.V0706.CommonEquipmentModel" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ccs="urn:semi-org:xsd.E138.V0709.ccs" xmlns:cem="urn:semi-org:xsd.E120-1.V1108.CommonEquipmentModel" xmlns:esdeqSD="urn:semi-org:xsd.E125.V0709-1.V0308.esd" targetNamespace="urn:semi-org:xsd.E125.V0709-1.V0308.esd" elementFormDefault="qualified" id="metadata">
<!--
NOTICE: SEMI makes no warranties or representations as to the suitability of the standards set forth herein for any particular application. The determination of the suitability of the standard is solely the responsibility of the user. Users are cautioned to refer to manufacturer's instructions, product labels, product data sheets, and other relevant literature, respecting any materials or equipment mentioned herein. These standards are subject to change without notice.
By publication of this standard, Semiconductor Equipment and Materials International (SEMI) takes no position respecting the validity of any patent rights or copyrights asserted in connection with any items mentioned in this standard. Users of this standard are expressly advised that determination of any such patent rights or copyrights, and the risk of infringement of such rights are entirely their own responsibility.
-->
<!-- I M P O R T S -->
<xsd:import namespace="urn:semi-org:xsd.E120-1.V1108V0706.CommonEquipmentModel" schemaLocation="E120-1-1108Schema
.V0706.CommonEquipmentModel.xsd"/>
<xsd:import namespace="urn:semi-org:xsd.CommonComponents.V0305E138.V0709.ccs" schemaLocation="CommonComponents-V0305E138-1-V0709-Schema.xsd"/>
<!-- T Y P E D E F I N I T I O N S -->
<xsd:simpleType name="LanguageCodeType" final="#all">
<xsd:restriction base="xsd:string">
<xsd:pattern value="([a-z]|[A-Z]){2}|([a-z]|[A-Z]){2}\-([a-z]|[A-Z]){2}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="SEMIStandardVersionType" final="#all">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[A-Z][0-9]*\-[0-9]*"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="UnitType" final="#all">
<xsd:sequence>
<xsd:element name="Description" type="xsd:string" block="#all" nillable="false"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="required"/>
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="symbol" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="UnitRefType" final="#all">
<xsd:attribute name="unitId" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="UnitConfigType" final="#all">
<xsd:attribute name="unitId" type="xsd:string" use="required"/>
<xsd:attribute name="setting" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="UnitConfigArrayType">
<xsd:sequence>
<xsd:element name="UnitConfig" type="UnitConfigType" nillable="false" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="configParamSource" type="cem:LocatorType" use="required"/>
<xsd:attribute name="configParamName" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="StringTypeType" final="#all">
<xsd:attribute name="language" type="LanguageCodeType" use="required"/>
<xsd:attribute name="maxCharacters" type="xsd:int" use="required"/>
</xsd:complexType>
<xsd:complexType name="ByteTypeType" final="#all">
<xsd:choice>
<xsd:element name="Units" type="UnitRefType" nillable="false"/>
<xsd:element name="AvailableUnits" type="UnitConfigArrayType" nillable="false"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="ShortTypeType" final="#all">
<xsd:choice>
<xsd:element name="Units" type="UnitRefType" nillable="false"/>
<xsd:element name="AvailableUnits" type="UnitConfigArrayType" nillable="false"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="IntTypeType" final="#all">
<xsd:choice>
<xsd:element name="Units" type="UnitRefType" nillable="false"/>
<xsd:element name="AvailableUnits" type="UnitConfigArrayType" nillable="false"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="LongTypeType" final="#all">
<xsd:choice>
<xsd:element name="Units" type="UnitRefType" nillable="false"/>
<xsd:element name="AvailableUnits" type="UnitConfigArrayType" nillable="false"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="FloatTypeType" final="#all">
<xsd:choice>
<xsd:element name="Units" type="UnitRefType" nillable="false"/>
<xsd:element name="AvailableUnits" type="UnitConfigArrayType" nillable="false"/>
</xsd:choice>
<xsd:attribute name="digitsOfPrecision" type="xsd:int" use="required"/>
</xsd:complexType>
<xsd:complexType name="DoubleTypeType" final="#all">
<xsd:choice>
<xsd:element name="Units" type="UnitRefType" nillable="false"/>
<xsd:element name="AvailableUnits" type="UnitConfigArrayType" nillable="false"/>
</xsd:choice>
<xsd:attribute name="digitsOfPrecision" type="xsd:int" use="required"/>
</xsd:complexType>
<xsd:complexType name="BooleanTypeType" final="#all">
<xsd:sequence/>
</xsd:complexType>
<xsd:complexType name="Base64BinaryTypeType" final="#all">
<xsd:sequence/>
<xsd:attribute name="mimeTypeName" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="AnyURITypeType" final="#all">
<xsd:sequence/>
</xsd:complexType>
<xsd:complexType name="DateTimeTypeType" final="#all">
<xsd:sequence/>
</xsd:complexType>
<xsd:complexType name="EnumeratedIntegerType" final="#all">
<xsd:sequence>
<xsd:element name="Description" type="xsd:string" block="#all" nillable="false"/>
</xsd:sequence>
<xsd:attribute name="value" type="xsd:int" use="required"/>
</xsd:complexType>
<xsd:complexType name="EnumeratedStringType" final="#all">
<xsd:sequence>
<xsd:element name="Description" type="xsd:string" block="#all" nillable="false"/>
</xsd:sequence>
<xsd:attribute name="value" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="TypeHintType" final="#all">
<xsd:attribute name="typeName" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="VariableTypeType" final="#all">
<xsd:sequence>
<xsd:element name="TypeHint" type="TypeHintType" nillable="false" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="EnumerationTypeType" final="#all">
<xsd:sequence>
<xsd:element name="Description" type="xsd:string" block="#all" nillable="false"/>
<xsd:choice>
<xsd:element name="EnumeratedInteger" type="EnumeratedIntegerType" nillable="false" maxOccurs="unbounded"/>
<xsd:element name="EnumeratedString" type="EnumeratedStringType" nillable="false" maxOccurs="unbounded"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ArrayTypeType" final="#all">
<xsd:sequence>
<xsd:element name="ElementDescription" type="xsd:string" block="#all" nillable="false"/>
<xsd:choice>
<xsd:element name="StructureType" type="StructureTypeType" nillable="false"/>
<xsd:element name="EnumeratedType" type="EnumerationTypeType" nillable="false"/>
<xsd:element name="ArrayType" type="ArrayTypeType" nillable="false"/>
<xsd:element name="StringType" type="StringTypeType" nillable="false"/>
<xsd:element name="DateTimeType" type="DateTimeTypeType" nillable="false"/>
<xsd:element name="AnyURIType" type="AnyURITypeType" nillable="false"/>
<xsd:element name="BooleanType" type="BooleanTypeType" nillable="false"/>
<xsd:element name="Base64BinaryType" type="Base64BinaryTypeType" nillable="false"/>
<xsd:element name="ByteType" type="ByteTypeType" nillable="false"/>
<xsd:element name="ShortType" type="ShortTypeType" nillable="false"/>
<xsd:element name="IntType" type="IntTypeType" nillable="false"/>
<xsd:element name="LongType" type="LongTypeType" nillable="false"/>
<xsd:element name="FloatType" type="FloatTypeType" nillable="false"/>
<xsd:element name="DoubleType" type="DoubleTypeType" nillable="false"/>
<xsd:element name="VariableType" type="VariableTypeType" nillable="false"/>
<xsd:element name="ParameterTypeDefinitionRef" type="ParameterTypeDefinitionReferenceType" nillable="false"/>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="minElements" type="xsd:int" use="required"/>
<xsd:attribute name="maxElements" type="xsd:int" use="required"/>
</xsd:complexType>
<xsd:complexType name="FieldType" final="#all">
<xsd:sequence>
<xsd:element name="Description" type="xsd:string" block="#all" nillable="false"/>
<xsd:choice>
<xsd:element name="StructureType" type="StructureTypeType" nillable="false"/>
<xsd:element name="EnumeratedType" type="EnumerationTypeType" nillable="false"/>
<xsd:element name="ArrayType" type="ArrayTypeType" nillable="false"/>
<xsd:element name="StringType" type="StringTypeType" nillable="false"/>
<xsd:element name="DateTimeType" type="DateTimeTypeType" nillable="false"/>
<xsd:element name="AnyURIType" type="AnyURITypeType" nillable="false"/>
<xsd:element name="BooleanType" type="BooleanTypeType" nillable="false"/>
<xsd:element name="Base64BinaryType" type="Base64BinaryTypeType" nillable="false"/>
<xsd:element name="ByteType" type="ByteTypeType" nillable="false"/>
<xsd:element name="ShortType" type="ShortTypeType" nillable="false"/>
<xsd:element name="IntType" type="IntTypeType" nillable="false"/>
<xsd:element name="LongType" type="LongTypeType" nillable="false"/>
<xsd:element name="FloatType" type="FloatTypeType" nillable="false"/>
<xsd:element name="DoubleType" type="DoubleTypeType" nillable="false"/>
<xsd:element name="VariableType" type="VariableTypeType" nillable="false"/>
<xsd:element name="TypeDefinitionRef" type="ParameterTypeDefinitionReferenceType" nillable="false"/>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="canBeNull" type="xsd:boolean" use="required"/>
</xsd:complexType>
<xsd:complexType name="StructureTypeType" final="#all">
<xsd:sequence>
<xsd:element name="Description" type="xsd:string" block="#all" nillable="false"/>
<xsd:element name="Field" type="FieldType" nillable="false" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ParameterTypeDefinitionType" final="#all">
<xsd:sequence>
<xsd:element name="Description" type="xsd:string" block="#all" nillable="false"/>
<xsd:choice>
<xsd:element name="StructureType" type="StructureTypeType" nillable="false"/>
<xsd:element name="EnumeratedType" type="EnumerationTypeType" nillable="false"/>
<xsd:element name="ArrayType" type="ArrayTypeType" nillable="false"/>
<xsd:element name="StringType" type="StringTypeType" nillable="false"/>
<xsd:element name="DateTimeType" type="DateTimeTypeType" nillable="false"/>
<xsd:element name="AnyURIType" type="AnyURITypeType" nillable="false"/>
<xsd:element name="BooleanType" type="BooleanTypeType" nillable="false"/>
<xsd:element name="Base64BinaryType" type="Base64BinaryTypeType" nillable="false"/>
<xsd:element name="ByteType" type="ByteTypeType" nillable="false"/>
<xsd:element name="ShortType" type="ShortTypeType" nillable="false"/>
<xsd:element name="IntType" type="IntTypeType" nillable="false"/>
<xsd:element name="LongType" type="LongTypeType" nillable="false"/>
<xsd:element name="FloatType" type="FloatTypeType" nillable="false"/>
<xsd:element name="DoubleType" type="DoubleTypeType" nillable="false"/>
<xsd:element name="VariableType" type="VariableTypeType" nillable="false"/>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="ParameterTypeDefinitionReferenceType" final="#all">
<xsd:attribute name="typeName" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="ParameterReferenceType" final="#all">
<xsd:attributesequence>
<xsd:element name="source" type="cem:LocatorType" use="optionalminOccurs=”0"/>
<xsd:elementattribute name="parameterNamename" type="xsd:string" nillable=”false”use="required"/>
<xsd:sequence>
</xsd:complexType>
<xsd:complexType name="AssociatedParameterTypeParameterAssociationType" final="#all">
<xsd:sequence>
<xsd:element name="ParameterRef" type="ParameterReferenceType" nillable="false"/>
<xsd:element name="Description" type="xsd:string" block="#all" nillable="false"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="EventToParameterMapType" final="#all">
<xsd:sequence>
<xsd:element name="Description" type="xsd:string" nillable="false" minOccurs="0"/>
<xsd:element name="AvailableParameter" type="ParameterReferenceType" nillable="false" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="eventId" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="StateMachineInstanceType" final="#all">
<xsd:sequence>
<xsd:element name="CurrentStateName" type="ParameterReferenceType" nillable="false" minOccurs="0"/>
<xsd:element name="PreviousStateName" type="ParameterReferenceType" nillable="false" minOccurs="0"/>
<xsd:element name="EventMap" type="EventToParameterMapType" nillable="false" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="NestedStateMachine" type="StateMachineInstanceType" nillable="false" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="stateMachineId" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="UnitConfigArrayType">
<xsd:sequence>
<xsd:element name="UnitConfig" type="UnitConfigType" nillable="false" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="configParamSource" type="cem:LocatorType" use="required"/>
<xsd:attribute name="configParamName" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="UnitConfigType" final="#all">
<xsd:attribute name="unitSymbol" type="xsd:string" use="required"/>
<xsd:attribute name="setting" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="UnitsType" final="#all">
<xsd:choice>
<xsd:element name="UnitSymbol" type="xsd:string" nillable="false"/>
<xsd:element name="AvailableUnits" type="UnitConfigArrayType" nillable="false"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="ParameterAssociationType" final="#all">
<xsd:sequence>
<xsd:element name="ParameterRef" type="ParameterReferenceType" nillable="false"/>
<xsd:element name="Description" type="xsd:string" block="#all" nillable="false"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="isTransientEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Transient"/>
<xsd:enumeration value="Restricted"/>
<xsd:enumeration value="Unrestricted"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="ParameterClassificationType" abstract="true">
<xsd:sequence/>
<xsd:attribute name="isTransient" type="isTransientEnumxsd:boolean" use="required"/>
</xsd:complexType>
<xsd:complexType name="ReadOnlyType">
<xsd:complexContent>
<xsd:extension base="ParameterClassificationType">
<xsd:sequence/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DataType" final="#all">
<xsd:complexContent>
<xsd:extension base="ReadOnlyType">
<xsd:sequence/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ReadWriteType" abstract="true">
<xsd:complexContent>
<xsd:extension base="ParameterClassificationType">
<xsd:sequence>
<xsd:element name="AffectedParameter" type="ParameterAssociationType" nillable="false" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ControlType">
<xsd:complexContent>
<xsd:extension base="ReadWriteType">
<xsd:sequence/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ConfigurationType">
<xsd:complexContent>
<xsd:extension base="ReadWriteType">
<xsd:sequence/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ConstraintType" final="#all">
<xsd:sequence>
<xsd:element name="Description" type="xsd:string" block="#all" nillable="false"/>
<xsd:element name="Definition" type="xsd:string" block="#all" nillable="false"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="ParameterType" final="#all">
<xsd:sequence>
<xsd:choice>
<xsd:element name="Control" type="ControlType" nillable="false"/>
<xsd:element name="Configuration" type="ConfigurationType" nillable="false"/>
<xsd:element name="Data" type="DataType" nillable="false"/>
</xsd:choice>
<xsd:element name="Description" type="xsd:string" block="#all" nillable="false"/>
<xsd:element name="Units" type="UnitsType" nillable="true" minOccurs=”0”/>
<xsd:element name="TypeDefinitionRef" type="ParameterTypeDefinitionReferenceType" nillable="false"/>
<xsd:element name="AssociatedParameter" type="AssociatedParameterTypeParameterAssociationType" nillable="false" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="Constraint" type="ConstraintType" nillable="false" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="parameterNamename" type="xsd:string" use="required"/>
<xsd:attribute name="typeName" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:attributeGroup name="StateMachineAttributeGroup">
<xsd:attribute name="id" type="xsd:string" use="required"/>
<xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:attributeGroup>
<xsd:complexType name="TransitionType" final="#all">
<xsd:sequence>
<xsd:element name="Description" type="xsd:string" block="#all" nillable="false"/>
</xsd:sequence>
<xsd:attributeGroup ref="StateMachineAttributeGroup"/>
<xsd:attribute name="transitionId" type="xsd:string" use="required"/>
<xsd:attribute name="transitionName" type="xsd:string" use="required"/>
<xsd:attribute name="sourceStateId" type="xsd:string" use="required"/>
<xsd:attribute name="targetStateId" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="TransitionReferenceType" final="#all">
<xsd:attribute name="transitionId" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="EventType" final="#all">
<xsd:sequence>
<xsd:element name="Description" type="xsd:string" block="#all" nillable="false"/>
<xsd:element name="TransitionRef" type="TransitionReferenceType" nillable="false" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="StateMachineAttributeGroup"/>
<xsd:attribute name="eventId" type="xsd:string" use="required"/>
<xsd:attribute name="eventName" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="StateType" final="#all">
<xsd:sequence>
<xsd:element name="Description" type="xsd:string" block="#all" nillable="false"/>
<xsd:choice minOccurs="0">
<xsd:element name="State" type="StateType" nillable="false" maxOccurs="unbounded"/>
<xsd:element name="StateMachine" type="StateMachineType" nillable="false" maxOccurs="unbounded"/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref="StateMachineAttributeGroup"/>
<xsd:attribute name="stateId" type="xsd:string" use="required"/>
<xsd:attribute name="stateName" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="StateMachineType" final="#all">
<xsd:sequence>
<xsd:element name="Description" type="xsd:string" block="#all" nillable="false"/>
<xsd:element name="State" type="StateType" nillable="false" maxOccurs="unbounded"/>
<xsd:element name="Transition" type="TransitionType" nillable="false" maxOccurs="unbounded"/>
<xsd:element name="Event" type="EventType" nillable="false" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="StateMachineAttributeGroup"/>
<xsd:attribute name="stateMachineId" type="xsd:string" use="required"/>
<xsd:attribute name="stateMachineName" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="ParameterCollectionType" final="#all">
<xsd:sequence>
<xsd:element name="Parameter" type="ParameterType" nillable="false" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="SimpleEventType" final="#all">
<xsd:sequence>
<xsd:element name="Description" type="xsd:string" nillable="false" minOccurs="0"/>
<xsd:element name="AvailableParameter" type="ParameterReferenceType" nillable="false" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="eventIdid" type="xsd:string" use="required"/>
<xsd:attribute name="eventNamename" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="SEMIObjTypeType" final="#all">
<xsd:sequence>
<xsd:element name="Attributes" type="ParameterTypeParameterCollectionType" nillable="false" maxOccurs="unbounded"/>
<xsd:element name="EventData" type="ParameterTypeParameterCollectionType" nillable="false" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="SimpleEvent" type="SimpleEventType" nillable="false" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="StateMachineInstance" type="StateMachineInstanceType" nillable="false" minOccurs="0">
<xsd:key name="UniqueObjTypeEventsKey">
<xsd:selector xpath=".//EventMap"/>
<xsd:field xpath="@eventId"/>
</xsd:key>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="standardVersion" type="SEMIStandardVersionType" use="required"/>
<xsd:attribute name="objType" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="SEMIObjTypeReferenceType" final="#all">
<xsd:attribute name="standardVersion" type="SEMIStandardVersionType" use="requiredoptional"/>
<xsd:attribute name="objType" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:simpleType name="severityEnumType" final="#all">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Fatal"/>
<xsd:enumeration value="Error"/>
<xsd:enumeration value="Warning"/>
<xsd:enumeration value="Informational"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="ExceptionReferenceType" final="#all">
<xsd:attribute name="exceptionId" type="xsd:string" use=”required”/>
</xsd:complexType>
<xsd:complexType name="ExceptionType" final="#all">
<xsd:sequence>
<xsd:element name="ExceptionParameter" type="ParameterReferenceType" nillable="false" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:sequence>
<xsd:element name="Description" type="xsd:string" nillable="false"/>
<xsd:element name="SetData" type="ParameterType" nillable="false" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="ClearData" type="ParameterType" nillable="false" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="exceptionId" type="xsd:string" use="required"/>
<xsd:attribute name="severity" type="severityEnumType" use="required"/>
<xsd:attribute name="severity" type="xsd:string" use="required"/>
<xsd:attribute name="id" type="xsd:string" use="required"/>
<xsd:attribute name="exceptionName" type="xsd:string" use="required"/>
<xsd:attribute name="description" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="EquipmentNodeDescriptionType" final="#all">
<xsd:sequence>
<xsd:element name="EquipmentNodeId" type="cem:LocatorType" block="#all" nillable="false"/>
<xsd:element name="StateMachineInstance" type="StateMachineInstanceType" nillable="false" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="ObjTypeRef" type="SEMIObjTypeReferenceType" nillable="false" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="ExceptionRef" type="ExceptionReferenceType" nillable="false" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="Parameter" type="ParameterType" nillable="false" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="SimpleEvent" type="SimpleEventType" nillable="false" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<!-- M E S S A G E C O N T A I N E R D E F I N I T I O N S -->
<xsd:complexType name="GetUnitsRequestType" final="#all">
<xsd:sequence/>
</xsd:complexType>
<xsd:complexType name="GetUnitsResponseType" final="#all">
<xsd:choice minOccurs="0">
<xsd:element ref=”ccs:Units” name="Unit" type="UnitType" nillable="false" maxOccurs="unbounded"/>
<xsd:element ref="ccs:Error"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="GetTypeDefinitionsRequestType" final="#all">
<xsd:sequence/>
</xsd:complexType>
<xsd:complexType name="GetTypeDefinitionsResponseType" final="#all">
<xsd:choice minOccurs="0">
<xsd:element ref=”ccs:ParameterTypes” name="TypeDefinition" type="ParameterTypeDefinitionType" nillable="false" maxOccurs="unbounded"/>
<xsd:element ref="ccs:Error"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="GetStateMachinesRequestType" final="#all">
<xsd:sequence/>
</xsd:complexType>
<xsd:complexType name="GetStateMachinesResponseType" final="#all">
<xsd:choice minOccurs="0">
<xsd:element name="StateMachine" type="StateMachineType" nillable="false" maxOccurs="unbounded">
<xsd:key name="StateIdKey">
<xsd:selector xpath=".//State"/>
<xsd:field xpath="@stateidId"/>
</xsd:key>
<xsd:key name="TransitionIdKey">
<xsd:selector xpath=".//Transition"/>
<xsd:field xpath="@transitionidId"/>
</xsd:key>
<xsd:keyref name="SourceStateIdRef" refer="StateIdKey">
<xsd:selector xpath=".//Transition"/>
<xsd:field xpath="@sourceStateId"/>
</xsd:keyref>
<xsd:keyref name="TargetStateIdRef" refer="StateIdKey">
<xsd:selector xpath=".//Transition"/>
<xsd:field xpath="@targetStateId"/>
</xsd:keyref>
<xsd:keyref name="TransitionIdRef" refer="TransitionIdKey">
<xsd:selector xpath=".//TransitionRef"/>
<xsd:field xpath="@transitionId"/>
</xsd:keyref>
</xsd:element>
<xsd:element ref="ccs:Error"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="GetSEMIObjTypesRequestType" final="#all">