<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified">
  <xs:include schemaLocation="D:\GIT\TEASER\teaser\Data\SchemaBindings\schemas\BoundaryConditions.xsd"/>
  <xs:element name="Project" type="ProjectType"/>
  <xs:complexType name="UseConditionType">
    <xs:sequence>
      <xs:element type="BoundaryConditionsType" name="BoundaryConditions" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="MaterialType">
    <xs:sequence>
      <xs:element type="xs:string" name="name"/>
      <xs:element type="xs:float" name="density"/>
      <xs:element type="xs:float" name="thermal_conduc"/>
      <xs:element type="xs:float" name="heat_capac"/>
      <xs:element type="xs:float" name="solar_absorp"/>
      <xs:element type="xs:float" name="ir_emissivity"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="LayerType">
    <xs:sequence>
      <xs:element type="xs:int" name="id"/>
      <xs:element type="xs:float" name="thickness"/>
      <xs:element type="MaterialType" name="Material"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OuterWallType">
    <xs:sequence>
      <xs:element type="xs:string" name="name" minOccurs="0"/>
      <xs:element type="xs:int" name="year_of_construction" minOccurs="0"/>
      <xs:element type="xs:string" name="construction_type" minOccurs="0"/>
      <xs:element type="xs:int" name="year_of_retrofit" minOccurs="0"/>
      <xs:element type="xs:float" name="area" minOccurs="0"/>
      <xs:element type="xs:float" name="tilt" minOccurs="0"/>
      <xs:element type="xs:float" name="orientation" minOccurs="0"/>
      <xs:element type="xs:float" name="inner_convection" minOccurs="0"/>
      <xs:element type="xs:float" name="inner_radiation" minOccurs="0"/>
      <xs:element type="xs:float" name="outer_convection" minOccurs="0"/>
      <xs:element type="xs:float" name="outer_radiation" minOccurs="0"/>
      <xs:element type="LayerType" name="Layer" maxOccurs="unbounded" minOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
   <xs:complexType name="RooftopType">
    <xs:sequence>
      <xs:element type="xs:string" name="name" minOccurs="0"/>
      <xs:element type="xs:int" name="year_of_construction" minOccurs="0"/>
      <xs:element type="xs:string" name="construction_type" minOccurs="0"/>
      <xs:element type="xs:int" name="year_of_retrofit" minOccurs="0"/>
      <xs:element type="xs:float" name="area" minOccurs="0"/>
      <xs:element type="xs:float" name="tilt" minOccurs="0"/>
      <xs:element type="xs:float" name="orientation" minOccurs="0"/>
      <xs:element type="xs:float" name="inner_convection" minOccurs="0"/>
      <xs:element type="xs:float" name="inner_radiation" minOccurs="0"/>
      <xs:element type="xs:float" name="outer_convection" minOccurs="0"/>
      <xs:element type="xs:float" name="outer_radiation" minOccurs="0"/>
      <xs:element type="LayerType" name="Layer" maxOccurs="unbounded" minOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
   <xs:complexType name="InnerWallType">
    <xs:sequence>
      <xs:element type="xs:string" name="name" minOccurs="0"/>
      <xs:element type="xs:int" name="year_of_construction" minOccurs="0"/>
      <xs:element type="xs:string" name="construction_type" minOccurs="0"/>
      <xs:element type="xs:int" name="year_of_retrofit" minOccurs="0"/>
      <xs:element type="xs:float" name="area" minOccurs="0"/>
      <xs:element type="xs:float" name="tilt" minOccurs="0"/>
      <xs:element type="xs:float" name="orientation" minOccurs="0"/>
      <xs:element type="xs:float" name="inner_convection" minOccurs="0"/>
      <xs:element type="xs:float" name="inner_radiation" minOccurs="0"/>
      <xs:element type="LayerType" name="Layer" maxOccurs="unbounded" minOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="CeilingType">
    <xs:sequence>
      <xs:element type="xs:string" name="name" minOccurs="0"/>
      <xs:element type="xs:int" name="year_of_construction" minOccurs="0"/>
      <xs:element type="xs:string" name="construction_type" minOccurs="0"/>
      <xs:element type="xs:int" name="year_of_retrofit" minOccurs="0"/>
      <xs:element type="xs:float" name="area" minOccurs="0"/>
      <xs:element type="xs:float" name="tilt" minOccurs="0"/>
      <xs:element type="xs:float" name="orientation" minOccurs="0"/>
      <xs:element type="xs:float" name="inner_convection" minOccurs="0"/>
      <xs:element type="xs:float" name="inner_radiation" minOccurs="0"/>
      <xs:element type="LayerType" name="Layer" maxOccurs="unbounded" minOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="FloorType">
    <xs:sequence>
      <xs:element type="xs:string" name="name" minOccurs="0"/>
      <xs:element type="xs:int" name="year_of_construction" minOccurs="0"/>
      <xs:element type="xs:string" name="construction_type" minOccurs="0"/>
      <xs:element type="xs:int" name="year_of_retrofit" minOccurs="0"/>
      <xs:element type="xs:float" name="area" minOccurs="0"/>
      <xs:element type="xs:float" name="tilt" minOccurs="0"/>
      <xs:element type="xs:float" name="orientation" minOccurs="0"/>
      <xs:element type="xs:float" name="inner_convection" minOccurs="0"/>
      <xs:element type="xs:float" name="inner_radiation" minOccurs="0"/>
      <xs:element type="LayerType" name="Layer" maxOccurs="unbounded" minOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="GroundFloorType">
    <xs:sequence>
      <xs:element type="xs:string" name="name" minOccurs="0"/>
      <xs:element type="xs:int" name="year_of_construction" minOccurs="0"/>
      <xs:element type="xs:string" name="construction_type" minOccurs="0"/>
      <xs:element type="xs:int" name="year_of_retrofit" minOccurs="0"/>
      <xs:element type="xs:float" name="area" minOccurs="0"/>
      <xs:element type="xs:float" name="tilt" minOccurs="0"/>
      <xs:element type="xs:float" name="orientation" minOccurs="0"/>
      <xs:element type="xs:float" name="inner_convection" minOccurs="0"/>
      <xs:element type="xs:float" name="inner_radiation" minOccurs="0"/>
      <xs:element type="LayerType" name="Layer" maxOccurs="unbounded" minOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="WindowType">
    <xs:sequence>
      <xs:element type="xs:string" name="name" minOccurs="0"/>
      <xs:element type="xs:int" name="year_of_construction" minOccurs="0"/>
      <xs:element type="xs:string" name="construction_type" minOccurs="0"/>
      <xs:element type="xs:int" name="year_of_retrofit" minOccurs="0"/>
      <xs:element type="xs:float" name="area" minOccurs="0"/>
      <xs:element type="xs:float" name="tilt" minOccurs="0"/>
      <xs:element type="xs:float" name="orientation" minOccurs="0"/>
      <xs:element type="xs:float" name="inner_convection" minOccurs="0"/>
      <xs:element type="xs:float" name="inner_radiation" minOccurs="0"/>
	  <xs:element type="xs:float" name="outer_convection" minOccurs="0"/>
      <xs:element type="xs:float" name="outer_radiation" minOccurs="0"/>
	  <xs:element type="xs:float" name="g_value" minOccurs="0"/>
      <xs:element type="xs:float" name="a_conv" minOccurs="0"/>
      <xs:element type="xs:float" name="shading_g_total" minOccurs="0"/>
      <xs:element type="xs:float" name="shading_max_irr" minOccurs="0"/>
      <xs:element type="LayerType" name="Layer" maxOccurs="unbounded" minOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ThermalZoneType">
	<xs:sequence>
      <xs:element type="xs:string" name="name" minOccurs="0"/>
      <xs:element type="xs:float" name="area" minOccurs="0"/>
      <xs:element type="xs:float" name="volume" minOccurs="0"/>
      <xs:element type="xs:float" name="infiltration_rate" minOccurs="0"/>
      <xs:element type="xs:float" name="typical_length" minOccurs="0"/>
	 <xs:element type="xs:float" name="typical_width" minOccurs="0"/>
      <xs:element type="UseConditionType" name="UseCondition" minOccurs="0"/>
      <xs:element type="OuterWallType" name="OuterWall" minOccurs="0" maxOccurs = "unbounded"/>
      <xs:element type="RooftopType" name="Rooftop" minOccurs="0" maxOccurs = "unbounded"/>
      <xs:element type="GroundFloorType" name="GroundFloor" minOccurs="0" maxOccurs = "unbounded"/>
      <xs:element type="InnerWallType" name="InnerWall" minOccurs="0" maxOccurs = "unbounded"/>
      <xs:element type="CeilingType" name="Ceiling" minOccurs="0" maxOccurs = "unbounded"/>
      <xs:element type="FloorType" name="Floor" minOccurs="0" maxOccurs = "unbounded"/>
      <xs:element type="WindowType" name="Window" minOccurs="0" maxOccurs = "unbounded"/>
	</xs:sequence>  
  </xs:complexType>
  <xs:complexType name="BuildingAHUType">
	<xs:sequence>
      <xs:element type="xs:boolean" name="heating" minOccurs="0"/>
      <xs:element type="xs:boolean" name="cooling" minOccurs="0"/>
      <xs:element type="xs:boolean" name="dehumidification" minOccurs="0"/>     
      <xs:element type="xs:boolean" name="humidification" minOccurs="0"/>
      <xs:element type="xs:boolean" name="heat_recovery" minOccurs="0"/>
      <xs:element type="xs:float" name="by_pass_dehumidification" minOccurs="0"/>     
      <xs:element type="xs:float" name="efficiency_recovery" minOccurs="0"/>
      <xs:element type="xs:float" name="efficiency_revocery_false" minOccurs="0"/>
      <xs:element type="floatList" name="profile_min_relative_humidity" minOccurs="0"/>
      <xs:element type="floatList" name="profile_max_relative_humidity" minOccurs="0"/>
      <xs:element type="floatList" name="profile_v_flow" minOccurs="0"/>
      <xs:element type="floatList" name="profile_temperature" minOccurs="0"/>
	</xs:sequence>  
  </xs:complexType>
  <xs:complexType name="BuildingType">
    <xs:sequence>
      <xs:element type="xs:string" name="name" minOccurs="0"/>
      <xs:element type="xs:string" name="street_name" minOccurs="0"/>
      <xs:element type="xs:string" name="city" minOccurs="0"/>
      <xs:element type="xs:string" name="type_of_building" minOccurs="0"/>
      <xs:element type="xs:string" name="year_of_construction" minOccurs="0"/>
	<xs:element type="xs:string" name="year_of_retrofit" minOccurs="0"/>
      <xs:element type="xs:int" name="number_of_floors" minOccurs="0"/>
      <xs:element type="xs:float" name="height_of_floors" minOccurs="0"/>
      <xs:element type="xs:float" name="net_leased_area" minOccurs="0"/>
      <xs:element type="xs:float" name="outer_area" minOccurs="0"/>
	<xs:element type="xs:float" name="window_area" minOccurs="0"/>
      <xs:element type="ThermalZoneType" name="ThermalZone" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element type="BuildingAHUType" name="CentralAHU" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OfficeType">
    <xs:sequence>
      <xs:element type="xs:string" name="name" minOccurs="0"/>
      <xs:element type="xs:string" name="street_name" minOccurs="0"/>
      <xs:element type="xs:string" name="city" minOccurs="0"/>
      <xs:element type="xs:string" name="type_of_building" minOccurs="0"/>
      <xs:element type="xs:string" name="year_of_construction" minOccurs="0"/>
	  <xs:element type="xs:string" name="year_of_retrofit" minOccurs="0"/>
      <xs:element type="xs:int" name="number_of_floors" minOccurs="0"/>
      <xs:element type="xs:float" name="height_of_floors" minOccurs="0"/>
      <xs:element type="xs:float" name="net_leased_area" minOccurs="0"/>
      <xs:element type="xs:float" name="outer_area" minOccurs="0"/>
	  <xs:element type="xs:float" name="window_area" minOccurs="0"/>
      <xs:element type="ThermalZoneType" name="ThermalZone" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element type="BuildingAHUType" name="CentralAHU" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ResidentialType">
    <xs:sequence>
      <xs:element type="xs:string" name="name" minOccurs="0"/>
      <xs:element type="xs:string" name="street_name" minOccurs="0"/>
      <xs:element type="xs:string" name="city" minOccurs="0"/>
      <xs:element type="xs:string" name="type_of_building" minOccurs="0"/>
      <xs:element type="xs:string" name="year_of_construction" minOccurs="0"/>
	  <xs:element type="xs:string" name="year_of_retrofit" minOccurs="0"/>
      <xs:element type="xs:int" name="number_of_floors" minOccurs="0"/>
      <xs:element type="xs:float" name="height_of_floors" minOccurs="0"/>
      <xs:element type="xs:float" name="net_leased_area" minOccurs="0"/>
      <xs:element type="xs:float" name="outer_area" minOccurs="0"/>
	  <xs:element type="xs:float" name="window_area" minOccurs="0"/>
      <xs:element type="ThermalZoneType" name="ThermalZone" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element type="BuildingAHUType" name="CentralAHU" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="InstituteType">
    <xs:sequence>
      <xs:element type="xs:string" name="name" minOccurs="0"/>
      <xs:element type="xs:string" name="street_name" minOccurs="0"/>
      <xs:element type="xs:string" name="city" minOccurs="0"/>
      <xs:element type="xs:string" name="type_of_building" minOccurs="0"/>
      <xs:element type="xs:string" name="year_of_construction" minOccurs="0"/>
	  <xs:element type="xs:string" name="year_of_retrofit" minOccurs="0"/>
      <xs:element type="xs:int" name="number_of_floors" minOccurs="0"/>
      <xs:element type="xs:float" name="height_of_floors" minOccurs="0"/>
      <xs:element type="xs:float" name="net_leased_area" minOccurs="0"/>
      <xs:element type="xs:float" name="outer_area" minOccurs="0"/>
	  <xs:element type="xs:float" name="window_area" minOccurs="0"/>
      <xs:element type="ThermalZoneType" name="ThermalZone" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element type="BuildingAHUType" name="CentralAHU" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Institute4Type">
    <xs:sequence>
      <xs:element type="xs:string" name="name" minOccurs="0"/>
      <xs:element type="xs:string" name="street_name" minOccurs="0"/>
      <xs:element type="xs:string" name="city" minOccurs="0"/>
      <xs:element type="xs:string" name="type_of_building" minOccurs="0"/>
      <xs:element type="xs:string" name="year_of_construction" minOccurs="0"/>
	  <xs:element type="xs:string" name="year_of_retrofit" minOccurs="0"/>
      <xs:element type="xs:int" name="number_of_floors" minOccurs="0"/>
      <xs:element type="xs:float" name="height_of_floors" minOccurs="0"/>
      <xs:element type="xs:float" name="net_leased_area" minOccurs="0"/>
      <xs:element type="xs:float" name="outer_area" minOccurs="0"/>
	  <xs:element type="xs:float" name="window_area" minOccurs="0"/>
      <xs:element type="ThermalZoneType" name="ThermalZone" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element type="BuildingAHUType" name="CentralAHU" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Institute8Type">
    <xs:sequence>
      <xs:element type="xs:string" name="name" minOccurs="0"/>
      <xs:element type="xs:string" name="street_name" minOccurs="0"/>
      <xs:element type="xs:string" name="city" minOccurs="0"/>
      <xs:element type="xs:string" name="type_of_building" minOccurs="0"/>
      <xs:element type="xs:string" name="year_of_construction" minOccurs="0"/>
	  <xs:element type="xs:string" name="year_of_retrofit" minOccurs="0"/>
      <xs:element type="xs:int" name="number_of_floors" minOccurs="0"/>
      <xs:element type="xs:float" name="height_of_floors" minOccurs="0"/>
      <xs:element type="xs:float" name="net_leased_area" minOccurs="0"/>
      <xs:element type="xs:float" name="outer_area" minOccurs="0"/>
	  <xs:element type="xs:float" name="window_area" minOccurs="0"/>
      <xs:element type="ThermalZoneType" name="ThermalZone" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element type="BuildingAHUType" name="CentralAHU" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ProjectType">
    <xs:choice maxOccurs="unbounded" minOccurs="0">
      <xs:element type="BuildingType" name="Building"/>
	  <xs:element type="OfficeType" name="Office"/>
	  <xs:element type="ResidentialType" name="Residential"/>
	  <xs:element type="InstituteType" name="Institute"/>
	  <xs:element type="Institute4Type" name="Institute4"/>
	  <xs:element type="Institute8Type" name="Institute8"/>
    </xs:choice>
  </xs:complexType>
</xs:schema>
