<?xml version=“1.0” encoding=“UTF-8”?> <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema”>

<xs:simpleType name="stringtype">
	<xs:restriction base="xs:string"/>
</xs:simpleType>


	<xs:element name="scenarios">
  		<xs:complexType>
    			<xs:sequence>
      			<xs:element maxOccurs="unbounded" ref="scenarios_list"/>
    			</xs:sequence>
  		</xs:complexType>
	</xs:element>


	<xs:element name="scenarios_list">
  		<xs:complexType>
    			<xs:sequence>
      			<xs:element maxOccurs="unbounded" ref="scenario"/>
    			</xs:sequence>
		<xs:attribute name="name" use="required" type="stringtype"/>
  		</xs:complexType>
		</xs:element>
	

	<xs:element name="scenario">
  		<xs:complexType>
    			<xs:sequence>
      			<xs:element ref="physical_objects"/>
      			<xs:element ref="components"/>
      			<xs:element ref="constraints"/>
      			<xs:element ref="alarm_display"/>
      			<xs:element ref="miscellaneous"/>
    			</xs:sequence>
		<xs:attribute name="name" use="required" type="stringtype"/>
		<xs:attribute name="type" use="required" type="stringtype"/>
  		</xs:complexType>
	</xs:element>

  
	<xs:element name="physical_objects">
  		<xs:complexType>
    			<xs:sequence>
      			<xs:element maxOccurs="unbounded" ref="po"/>
    			</xs:sequence>
  		</xs:complexType>
	</xs:element>


	<xs:element name="po">
  		<xs:complexType>
		<xs:attribute name="name" use="required" type="stringtype"/>
		<xs:attribute name="type" use="required" type="stringtype"/>
  		</xs:complexType>
	</xs:element>


	<xs:element name="components">
  		<xs:complexType>
    			<xs:sequence>
      			<xs:element maxOccurs="unbounded" ref="comp"/>
    			</xs:sequence>
  		</xs:complexType>
	</xs:element>


	<xs:element name="comp">
  		<xs:complexType>
    			<xs:sequence>
      			<xs:element maxOccurs="unbounded" ref="attribute"/>
    			</xs:sequence>
		<xs:attribute name="code" use="required" type="stringtype"/>
		<xs:attribute name="name" use="required" type="stringtype"/>
		<xs:attribute name="type" use="required" type="stringtype"/>
  		</xs:complexType>
	</xs:element>


<xs:element name="constraints">
	<xs:complexType>
		<xs:sequence>
			<xs:element maxOccurs="unbounded" ref="cons"/>
		</xs:sequence>
	</xs:complexType>
</xs:element>


<xs:element name="cons">
	<xs:complexType>
		<xs:sequence>
			<xs:element maxOccurs="unbounded" ref="predicat"/>
		</xs:sequence>
		<xs:attribute name="operator" use="required" type="stringtype"/>
	</xs:complexType>
</xs:element>


<xs:element name="predicat">
	<xs:complexType>
		<xs:sequence>
			<xs:element minOccurs="0" ref="cons"/>
		</xs:sequence>
		<xs:attribute name="value" type="stringtype"/>
	</xs:complexType>
	</xs:element>


	<xs:element name="alarm_display">
  		<xs:complexType>
    			<xs:sequence>
      			<xs:element ref="text"/>
      			<xs:element ref="level"/>
      			<xs:element ref="pos_3d"/>
    			</xs:sequence>
  		</xs:complexType>
	</xs:element>


	<xs:element name="text">
  		<xs:complexType>
		<xs:attribute name="value" use="required" type="stringtype"/>
  		</xs:complexType>
	</xs:element>


	<xs:element name="level">
  		<xs:complexType>
		<xs:attribute name="value" use="required" type="stringtype"/>
  		</xs:complexType>
	</xs:element>


	<xs:element name="pos_3d">
  		<xs:complexType>
		<xs:attribute name="value" use="required" type="stringtype"/>
  		</xs:complexType>
	</xs:element>


	<xs:element name="miscellaneous">
  		<xs:complexType>
    			<xs:sequence>
      			<xs:element minOccurs="0" maxOccurs="unbounded" ref="misc"/>
    			</xs:sequence>
  		</xs:complexType>
	</xs:element>


	<xs:element name="misc">
  		<xs:complexType>
    			<xs:sequence>
      			<xs:element maxOccurs="unbounded" ref="attribute"/>
    			</xs:sequence>
		<xs:attribute name="name" use="required" type="stringtype"/>
  		</xs:complexType>
	</xs:element>


	<xs:element name="attribute">
  		<xs:complexType>
		<xs:attribute name="name" use="required" type="stringtype"/>
		<xs:attribute name="value" type="stringtype"/>
  		</xs:complexType>
	</xs:element>

</xs:schema>