<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.saurabh-mittal.com/NewXMLSchema" xmlns:tns="http://www.saurabh-mittal.com/NewXMLSchema" elementFormDefault="qualified">



    <xsd:simpleType name="incomingMessageType">
    	<xsd:restriction base="xsd:string"></xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="outgoingMessageType">
    	<xsd:restriction base="xsd:string"></xsd:restriction>
    </xsd:simpleType>



    <xsd:simpleType name="timeoutType">
    	<xsd:restriction base="xsd:double"></xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="scheduleIndicatorType">
    	<xsd:restriction base="xsd:boolean"></xsd:restriction>
    </xsd:simpleType>

    <xsd:complexType name="intTransitionType">
    	<xsd:sequence
    		minOccurs="1"
    		maxOccurs="unbounded">
    		<xsd:element ref="tns:transition" minOccurs="1" maxOccurs="1"></xsd:element>
    	</xsd:sequence>
    	<xsd:attribute
    		name="intTransitionID"
    		type="xsd:int" use="required">
    	</xsd:attribute>
    </xsd:complexType>
    <xsd:element name="StartState" type="tns:stateType"></xsd:element>

    <xsd:element name="NextState" type="tns:stateType"></xsd:element>

    <xsd:element name="OutgoingMessage" type="tns:outgoingMessageType"></xsd:element>

    <xsd:element name="Timeout" type="tns:timeoutType"></xsd:element>

    <xsd:element name="InternalTransition" type="tns:intTransitionType"></xsd:element>




    <xsd:element name="inports" type="tns:inportType"></xsd:element>

    <xsd:element name="outports" type="tns:outportType"></xsd:element>

    <xsd:element
    	name="atomic"
    	type="tns:atomicType">
    </xsd:element>
    
    <xsd:complexType name="atomicType">
    	<xsd:sequence
    		minOccurs="0"
    		maxOccurs="unbounded">
    		<xsd:element
    			ref="tns:inports"
    			minOccurs="1"
    			maxOccurs="1">
    		</xsd:element>
    		<xsd:element
    			ref="tns:outports"
    			maxOccurs="1"
    			minOccurs="1">
    		</xsd:element>
    		<xsd:element
    			ref="tns:states"
    			minOccurs="1"
    			maxOccurs="1">
    		</xsd:element>
    		<xsd:element
    			ref="tns:deltint"
    			minOccurs="1"
    			maxOccurs="1">
    		</xsd:element>
    		<xsd:element
    			ref="tns:deltext"
    			minOccurs="1"
    			maxOccurs="1">
    		</xsd:element>
    		<xsd:element
    			ref="tns:TimeAdvance"
    			minOccurs="1"
    			maxOccurs="1">
    		</xsd:element>
    		<xsd:element ref="tns:LamdaSet" minOccurs="1" maxOccurs="1"></xsd:element>
    	</xsd:sequence>
    	<xsd:attribute
    		name="modelName"
    		type="xsd:string">
    	</xsd:attribute>
    	<xsd:attribute
    		name="host"
    		type="xsd:string">
    	</xsd:attribute>
    </xsd:complexType>
    <xsd:element
    	name="deltint"
    	type="tns:deltintType">
    </xsd:element>
    
    <xsd:complexType name="deltintType">
    	<xsd:sequence>
    		<xsd:element ref="tns:InternalTransition" minOccurs="0" maxOccurs="unbounded"></xsd:element>
    	</xsd:sequence>
    </xsd:complexType>


    <xsd:simpleType name="portType">
    	<xsd:restriction base="xsd:string"></xsd:restriction>
    </xsd:simpleType>

    <xsd:element name="inport" type="tns:portType"></xsd:element>

    <xsd:complexType name="inportType">
    	<xsd:sequence>
    		<xsd:element ref="tns:inport" minOccurs="1" maxOccurs="unbounded"></xsd:element>
    	</xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="outportType">
    	<xsd:sequence>
    		<xsd:element ref="tns:outport" minOccurs="1" maxOccurs="unbounded"></xsd:element>
    	</xsd:sequence>
    </xsd:complexType>
    
    <xsd:element name="outport" type="tns:portType"></xsd:element>

    <xsd:complexType name="transitionType">
    	<xsd:sequence>
    		<xsd:element ref="tns:StartState"></xsd:element>
    		<xsd:element ref="tns:NextState"></xsd:element>
    	</xsd:sequence>
    </xsd:complexType>

    <xsd:element name="transition" type="tns:transitionType"></xsd:element>

    <xsd:complexType name="extTransitionType">
    	<xsd:sequence>
    		<xsd:element ref="tns:IncomingMessage" minOccurs="1" maxOccurs="1"></xsd:element>
    		<xsd:element ref="tns:transition" minOccurs="1" maxOccurs="1"></xsd:element>
    		<xsd:element ref="tns:scheduleIndicator" minOccurs="1" maxOccurs="1"></xsd:element>
    	</xsd:sequence>
    	<xsd:attribute
    		name="extTransitionID"
    		type="xsd:int" use="required">
    	</xsd:attribute>
    </xsd:complexType>
    <xsd:element name="scheduleIndicator" type="tns:scheduleIndicatorType"></xsd:element>

    <xsd:element name="IncomingMessage" type="tns:incomingMessageType"></xsd:element>

    <xsd:element name="ExternalTransition" type="tns:extTransitionType"></xsd:element>

    <xsd:complexType name="deltextType">
    	<xsd:sequence>
    		<xsd:element ref="tns:ExternalTransition" minOccurs="0" maxOccurs="unbounded"></xsd:element>
    	</xsd:sequence>
    </xsd:complexType>

    <xsd:element name="deltext" type="tns:deltextType"></xsd:element>




    <xsd:simpleType name="stateType">
    	<xsd:restriction base="xsd:string"></xsd:restriction>
    </xsd:simpleType>

    
    <xsd:element name="states" type="tns:statesType"></xsd:element>

    <xsd:element name="state" type="tns:stateType"></xsd:element>









    <xsd:complexType name="statesType">
    	<xsd:sequence>
    		<xsd:element ref="tns:state" minOccurs="1" maxOccurs="unbounded"></xsd:element>
    	</xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="taType">
    	<xsd:sequence>
    		<xsd:element ref="tns:state"></xsd:element>
    		<xsd:element ref="tns:Timeout"></xsd:element>
    	</xsd:sequence>
    </xsd:complexType>

    <xsd:element name="ta" type="tns:taType"></xsd:element>

    <xsd:complexType name="timeAdvanceType">
    	<xsd:sequence>
    		<xsd:element ref="tns:ta" minOccurs="0" maxOccurs="unbounded"></xsd:element>
    	</xsd:sequence>
    </xsd:complexType>

    <xsd:element name="TimeAdvance" type="tns:timeAdvanceType"></xsd:element>

    <xsd:complexType name="lambdaType">
    	<xsd:sequence>
    		<xsd:element ref="tns:state"></xsd:element>
    		<xsd:element ref="tns:outport"></xsd:element>
    	</xsd:sequence>
    </xsd:complexType>

    <xsd:element name="lamda" type="tns:lambdaType"></xsd:element>

    <xsd:complexType name="LamdaAllType">
    	<xsd:sequence>
    		<xsd:element ref="tns:lamda" minOccurs="0" maxOccurs="unbounded"></xsd:element>
    	</xsd:sequence>
    </xsd:complexType>

    <xsd:element name="LamdaSet" type="tns:LamdaAllType"></xsd:element>
</xsd:schema>
