<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="DeviceModelDefine">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="IoValves">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="IoValve">
                <xs:complexType>
                  <xs:attribute name="id" type="xs:string" use="required" />
                  <xs:attribute name="display" type="xs:string" use="required" />
                  <xs:attribute name="schematicId" type="xs:string" use="required" />
                  <xs:attribute name="unit" type="xs:string" use="required" />
                  <xs:attribute name="isNc" type="xs:boolean" use="required" />
                  <xs:attribute name="isDefaultOpen" type="xs:boolean" use="required" />
                  <xs:attribute name="diOpen" type="xs:string" use="required" />
                  <xs:attribute name="doOpen" type="xs:string" use="required" />
                  <xs:attribute name="diCloseSensor" type="xs:string" use="required" />
                  <xs:attribute name="diOpenSensor" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="IoMfcs">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="IoMfc">
                <xs:complexType>
                  <xs:attribute name="id" type="xs:string" use="required" />
                  <xs:attribute name="display" type="xs:string" use="required" />
                  <xs:attribute name="schematicId" type="xs:string" use="required" />
                  <xs:attribute name="unit" type="xs:string" use="required" />
                  <xs:attribute name="aiFlow" type="xs:string" use="required" />
                  <xs:attribute name="aoFlow" type="xs:string" use="required" />
                  <xs:attribute name="diOffline" type="xs:string" use="required" />
                  <xs:attribute name="diPressureAlarm" type="xs:string" use="required" />
                  <xs:attribute name="aoRange" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="assembly" type="xs:string" use="required" />
            <xs:attribute name="classType" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
        <xs:element name="IoGasSticks">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="IoGasStick">
                <xs:complexType>
                  <xs:attribute name="id" type="xs:string" use="required" />
                  <xs:attribute name="display" type="xs:string" use="required" />
                  <xs:attribute name="mfc" type="xs:string" use="required" />
                  <xs:attribute name="downvalve" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="assembly" type="xs:string" use="required" />
            <xs:attribute name="classType" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
		  <xs:element name="IoBacksideHes">
			  <xs:complexType>
				  <xs:sequence>
					  <xs:element maxOccurs="unbounded" name="IoBacksideHe">
						  <xs:complexType>
							  <xs:attribute name="id" type="xs:string" use="required" />
							  <xs:attribute name="display" type="xs:string" use="required" />
							  <xs:attribute name="mfc" type="xs:string" use="required" />
							  <xs:attribute name="downvalve" type="xs:string" use="required" />
							  <xs:attribute name="aoControlMode" type="xs:string" use="required" />
							  <xs:attribute name="aoPressureSP" type="xs:string" use="required" />
						  </xs:complexType>
					  </xs:element>
				  </xs:sequence>
				  <xs:attribute name="assembly" type="xs:string" use="required" />
				  <xs:attribute name="classType" type="xs:string" use="required" />
			  </xs:complexType>
		  </xs:element>
        <!--<xs:element name="IoTemperatureCtrls">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="IoTemperatureCtrl">
                <xs:complexType>
                  <xs:attribute name="id" type="xs:string" use="required" />
                  <xs:attribute name="aoSetpoint" type="xs:string" use="required" />
                  <xs:attribute name="aiCtrlFB" type="xs:string" use="required" />
                  <xs:attribute name="aiMonitorFB" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="assembly" type="xs:string" use="required" />
            <xs:attribute name="classType" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>-->
        <xs:element name="IoSensors">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="IoSensor">
                <xs:complexType>
                  <xs:attribute name="id" type="xs:string" use="required" />
                  <xs:attribute name="display" type="xs:string" use="required" />
                  <xs:attribute name="schematicId" type="xs:string" use="required" />
                  <xs:attribute name="unit" type="xs:string" use="required" />
                  <xs:attribute name="di" type="xs:string" use="required" />
                  <xs:attribute name="isLowAsNormal" type="xs:string" use="required" />
                  <xs:attribute name="infoText" type="xs:string" use="required" />
                  <xs:attribute name="warningText" type="xs:string" use="required" />
                  <xs:attribute name="alarmText" type="xs:string" use="required" />
				   <xs:attribute name ="textOutTrigValue" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="IoPressureMeters">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="IoPressureMeter">
                <xs:complexType>
                  <xs:attribute name="id" type="xs:string" use="required" />
                  <xs:attribute name="display" type="xs:string" use="required" />
                  <xs:attribute name="schematicId" type="xs:string" use="required" />
                  <xs:attribute name="unit" type="xs:string" use="required" />
                  <xs:attribute name="aiValue" type="xs:string" use="required" />
                  <xs:attribute name="diGaugeFail" type="xs:string" use="required" />
                  <xs:attribute name="scPrecision" type="xs:string" use="required" />
                  <xs:attribute name="scOffset" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
		    <xs:attribute name="assembly" type="xs:string" use="required" />
            <xs:attribute name="classType" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
        <xs:element name="IoPumps">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="IoPump">
                <xs:complexType>
                  <xs:attribute name="id" type="xs:string" use="required" />
                  <xs:attribute name="display" type="xs:string" use="required" />
                  <xs:attribute name="schematicId" type="xs:string" use="required" />
                  <xs:attribute name="unit" type="xs:string" use="required" />
                  <xs:attribute name="diBreakerState" type="xs:string" use="required" />
                  <xs:attribute name="diRunning" type="xs:string" use="required" />
                  <xs:attribute name="diOverloadAlarm" type="xs:string" use="optional" />
                  <xs:attribute name="diStart" type="xs:string" use="required" />
                  <xs:attribute name="diStop" type="xs:string" use="required" />
                  <xs:attribute name="diPumpTempWaring" type="xs:string" use="optional" />
                  <xs:attribute name="diPumpTempAlarm" type="xs:string" use="required" />
                  <xs:attribute name="diN2Alarm" type="xs:string" use="required" />
				  <xs:attribute name="diAlarm" type="xs:string" use="required" />
                  <xs:attribute name="diWarning" type="xs:string" use="required" />
                  <xs:attribute name="diExhaustPressureAlarm" type="xs:string" use="required" />
                  <xs:attribute name="diWaterFlowAlarm" type="xs:string" use="required" />
                  <xs:attribute name="doStart" type="xs:string" use="required" />
                  <xs:attribute name="doStop" type="xs:string" use="required" />
                  <xs:attribute name="doWaterFlowAlarm" type="xs:string" use="required" />
                  <xs:attribute name="doN2PressureAlarm" type="xs:string" use="required" />
                  <xs:attribute name="aiWaterFlow" type="xs:string" use="required" />
                  <xs:attribute name="aiN2Pressure" type="xs:string" use="required" />
                  <xs:attribute name="aoN2PressureAlarmMaxValue" type="xs:string" use="required" />
                  <xs:attribute name="aoN2PressureAlarmMinValue" type="xs:string" use="required" />
                  <xs:attribute name="aoWaterFlowAlarmMaxValue" type="xs:string" use="required" />
                  <xs:attribute name="aoWaterFlowAlarmMinValue" type="xs:string" use="required" />
                  <xs:attribute name="scEnableDryPump" type="xs:string" use="required" />
                  <xs:attribute name="scEnableWaterFlow" type="xs:string" use="required" />
                  <xs:attribute name="scWaterFlowMinValue" type="xs:string" use="required" />
                  <xs:attribute name="scWaterFlowMaxValue" type="xs:string" use="required" />
                  <xs:attribute name="scWaterFlowOutOfToleranceWarningTime" type="xs:string" use="required" />
                  <xs:attribute name="scWaterFlowOutOfToleranceAlarmTime" type="xs:string" use="required" />
                  <xs:attribute name="scEnableN2Pressure" type="xs:string" use="required" />
                  <xs:attribute name="scN2PressureMinValue" type="xs:string" use="required" />
                  <xs:attribute name="scN2PressureMaxValue" type="xs:string" use="required" />
                  <xs:attribute name="scN2PressureOutOfToleranceWarningTime" type="xs:string" use="required" />
                  <xs:attribute name="scN2PressureOutOfToleranceAlarmTime" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="assembly" type="xs:string" use="required" />
            <xs:attribute name="classType" type="xs:string" use="required" />
		    <xs:attribute name="IsEnabled" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
        <xs:element name="IoThrottleValves">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="IoThrottleValve">
                <xs:complexType>
                  <xs:attribute name="id" type="xs:string" use="required" />
                  <xs:attribute name="display" type="xs:string" use="required" />
                  <xs:attribute name="schematicId" type="xs:string" use="required" />
                  <xs:attribute name="unit" type="xs:string" use="required" />
                  <xs:attribute name="aiPositionFeedback" type="xs:string" use="required" />
                  <xs:attribute name="aiPressureFeedback" type="xs:string" use="required" />
                  <xs:attribute name="aiState" type="xs:string" use="required" />
                  <xs:attribute name="aoPositionSetPoint" type="xs:string" use="required" />
                  <xs:attribute name="aoPressureSetPoint" type="xs:string" use="required" />
                  <xs:attribute name="aoPressureMode" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="assembly" type="xs:string" use="required" />
            <xs:attribute name="classType" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
        <xs:element name="IoPressureControls">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="IoPressureControl">
                <xs:complexType>
                  <xs:attribute name="id" type="xs:string" use="required" />
                  <xs:attribute name="display" type="xs:string" use="required" />
                  <xs:attribute name="schematicId" type="xs:string" use="required" />
                  <xs:attribute name="unit" type="xs:string" use="required" />
                  <xs:attribute name="diLogicProcessGasFlowing" type="xs:string" use="required" />
                  <xs:attribute name="scGasFlowPressureAlarmRange" type="xs:string" use="required" />
                  <xs:attribute name="scGasFlowPressureAlarmTime" type="xs:string" use="required" />
                  <xs:attribute name="scIsIndependentControl" type="xs:string" use="required" />
                  <xs:attribute name="scIsBoostPumpInstalled" type="xs:string" use="required" />
                  <xs:attribute name="scTvInstalled" type="xs:string" use="required" />
                  <xs:attribute name="boost" type="xs:string" use="required" />
                  <xs:attribute name="tv" type="xs:string" use="required" />
                  <xs:attribute name="drypump" type="xs:string" use="required" />
                  <xs:attribute name="pressureMeter" type="xs:string" use="required" />
                  <xs:attribute name="processMeter" type="xs:string" use="required" />
                  <xs:attribute name="forelineMeter" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="assembly" type="xs:string" use="required" />
            <xs:attribute name="classType" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
        <xs:element name="IoHeaters">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="IoHeater" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:attribute name="id" type="xs:string" use="required" />
                  <xs:attribute name="display" type="xs:string" use="required" />
                  <xs:attribute name="schematicId" type="xs:string" use="required" />
                  <xs:attribute name="unit" type="xs:string" use="required" />
                  <xs:attribute name="doPowerOn" type="xs:string" use="required" />
                  <xs:attribute name="diPowerOnFeedback" type="xs:string" use="required" />
				  <xs:attribute name="diDeviation" type="xs:string" use="required" />
				  <xs:attribute name="diControlTcBroken" type="xs:string" use="required" />
				  <xs:attribute name="diMonitorTcBroken" type="xs:string" use="required" />
                  <xs:attribute name="aoSetPoint" type="xs:string" use="required" />
                  <xs:attribute name="aoSetPointLimit" type="xs:string" use="required" />
                  <xs:attribute name="aiFeedback" type="xs:string" use="required" />
                  <xs:attribute name="aiMonitor" type="xs:string" use="required" />
				  <xs:attribute name="aiCoolantInletTemp" type="xs:string" use="optional"/>
                  <xs:attribute name="aiCoolantOutletTemp" type="xs:string" use="optional" />
                  <xs:attribute name="scSetPointLimit" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
		    <xs:attribute name="assembly" type="xs:string" use="required" />
            <xs:attribute name="classType" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
        <xs:element name="IoHeartbeats">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="IoHeartbeat">
                <xs:complexType>
                  <xs:attribute name="id" type="xs:string" use="required" />
                  <xs:attribute name="display" type="xs:string" use="required" />
                  <xs:attribute name="schematicId" type="xs:string" use="required" />
                  <xs:attribute name="unit" type="xs:string" use="required" />
                  <xs:attribute name="ao" type="xs:string" use="required" />
                  <xs:attribute name="ai" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
		    <xs:attribute name="assembly" type="xs:string" use="required" />
            <xs:attribute name="classType" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
        <xs:element name="IoResets">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="IoReset">
                <xs:complexType>
                  <xs:attribute name="id" type="xs:string" use="required" />
                  <xs:attribute name="display" type="xs:string" use="required" />
                  <xs:attribute name="schematicId" type="xs:string" use="required" />
                  <xs:attribute name="unit" type="xs:string" use="required" />
                  <xs:attribute name="doReset" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="IoSetConfigs">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="IoSetConfig">
                <xs:complexType>
                  <xs:attribute name="id" type="xs:string" use="required" />
                  <xs:attribute name="display" type="xs:string" use="required" />
                  <xs:attribute name="schematicId" type="xs:string" use="required" />
                  <xs:attribute name="unit" type="xs:string" use="required" />
                  <xs:attribute name="aoPressureOffset" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="IoStatisticss">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="IoStatistics">
                <xs:complexType>
                  <xs:attribute name="id" type="xs:string" use="required" />
                  <xs:attribute name="display" type="xs:string" use="required" />
                  <xs:attribute name="schematicId" type="xs:string" use="required" />
                  <xs:attribute name="unit" type="xs:string" use="required" />
                  <xs:attribute name="diMonitorSignal" type="xs:string" use="required" />
                  <xs:attribute name="scLastPMTime" type="xs:string" use="required" />
                  <xs:attribute name="scTimeFromLastPM" type="xs:string" use="required" />
                  <xs:attribute name="scTimeTotal" type="xs:string" use="required" />
                  <xs:attribute name="scEnableAlarm" type="xs:string" use="required" />
                  <xs:attribute name="scPMInterval" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="IoPlcDateTimes">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="IoPlcDateTime">
                <xs:complexType>
                  <xs:attribute name="id" type="xs:string" use="required" />
                  <xs:attribute name="display" type="xs:string" use="required" />
                  <xs:attribute name="schematicId" type="xs:string" use="required" />
                  <xs:attribute name="unit" type="xs:string" use="required" />
                  <xs:attribute name="aiYear" type="xs:string" use="required" />
                  <xs:attribute name="aiMonth" type="xs:string" use="required" />
                  <xs:attribute name="aiDay" type="xs:string" use="required" />
                  <xs:attribute name="aiHour" type="xs:string" use="required" />
                  <xs:attribute name="aiMinute" type="xs:string" use="required" />
                  <xs:attribute name="aiSecond" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="IoCylinders">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="IoCylinder">
                <xs:complexType>
                  <xs:attribute name="id" type="xs:string" use="required" />
                  <xs:attribute name="display" type="xs:string" use="required" />
                  <xs:attribute name="schematicId" type="xs:string" use="required" />
                  <xs:attribute name="unit" type="xs:string" use="required" />
                  <xs:attribute name="doMotorRelay" type="xs:string" use="optional" />
                  <xs:attribute name="doON" type="xs:string" use="required" />
                  <xs:attribute name="doOFF" type="xs:string" use="required" />
                  <xs:attribute name="diON" type="xs:string" use="required" />
                  <xs:attribute name="diOFF" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="assembly" type="xs:string" use="required" />
            <xs:attribute name="classType" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
	  
		<xs:element name="IoLids">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="IoLid">
                <xs:complexType>
                  <xs:attribute name="id" type="xs:string" use="required" />
                  <xs:attribute name="display" type="xs:string" use="required" />
                  <xs:attribute name="schematicId" type="xs:string" use="required" />
                  <xs:attribute name="unit" type="xs:string" use="required" />
                  <xs:attribute name="doMotorRelay" type="xs:string" use="optional" />
                  <xs:attribute name="doON" type="xs:string" use="required" />
                  <xs:attribute name="doOFF" type="xs:string" use="required" />
                  <xs:attribute name="diON" type="xs:string" use="required" />
                  <xs:attribute name="diOFF" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="assembly" type="xs:string" use="required" />
            <xs:attribute name="classType" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>

        <xs:element name="IoMessages">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="IoMessage">
                <xs:complexType>
                  <xs:attribute name="id" type="xs:string" use="required" />
                  <xs:attribute name="display" type="xs:string" use="required" />
                  <xs:attribute name="schematicId" type="xs:string" use="required" />
                  <xs:attribute name="unit" type="xs:string" use="required" />
                  <xs:attribute name="doMotorRelay" type="xs:string" use="optional" />
                  <xs:attribute name="ao" type="xs:string" use="required" />
                  <xs:attribute name="ai" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="assembly" type="xs:string" use="required" />
            <xs:attribute name="classType" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
	  
	    <xs:element name="IoPumpCtrls">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="IoPumpCtrl">
                <xs:complexType>
                  <xs:attribute name="id" type="xs:string" use="required" />
                  <xs:attribute name="display" type="xs:string" use="required" />
                  <xs:attribute name="schematicId" type="xs:string" use="required" />
                  <xs:attribute name="unit" type="xs:string" use="required" />
                  <xs:attribute name="doPumpRun" type="xs:string" use="optional" />
                  <xs:attribute name="doPumpStop" type="xs:string" use="required" />
                  <xs:attribute name="diDryPumpRunning" type="xs:string" use="required" />
                  <xs:attribute name="diPumpAlarm" type="xs:string" use="required" />
                  <xs:attribute name="diPumpRemoteStatus" type="xs:string" use="required" />
				  <xs:attribute name="diBoosterPumpRunning" type="xs:string" use="required" />
				  <xs:attribute name="aoPumpIOCTRLEnable" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="assembly" type="xs:string" use="required" />
            <xs:attribute name="classType" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="type" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>
</xs:schema>