﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Building" nillable="true" type="Building" />
  <xs:complexType name="Building">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Address" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="PlanningInformation" type="PlanningInformation" />
      <xs:element minOccurs="0" maxOccurs="1" name="RevisionActs" type="ArrayOfRevisionAct" />
      <xs:element minOccurs="0" maxOccurs="1" name="ResourceInputs" type="ArrayOfResourceInput" />
      <xs:element minOccurs="0" maxOccurs="1" name="ShortFallAct" type="ShortFallAct" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PlanningInformation">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="BuildingSer" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="WallType" type="WallTypeEnum" />
      <xs:element minOccurs="1" maxOccurs="1" name="BuildYear" type="xs:short" />
      <xs:element minOccurs="1" maxOccurs="1" name="TotalArea" type="xs:decimal" />
      <xs:element minOccurs="1" maxOccurs="1" name="FloorCount" type="xs:unsignedByte" />
      <xs:element minOccurs="1" maxOccurs="1" name="PremiseCount" type="xs:unsignedByte" />
      <xs:element minOccurs="1" maxOccurs="1" name="PremiseArea" type="xs:decimal" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="WallTypeEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Panel" />
      <xs:enumeration value="Brick" />
      <xs:enumeration value="Monolithic" />
      <xs:enumeration value="Other" />
      <xs:enumeration value="Stone" />
      <xs:enumeration value="Block" />
      <xs:enumeration value="Hybrid" />
      <xs:enumeration value="Wooden" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ArrayOfRevisionAct">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="RevisionAct" nillable="true" type="RevisionAct" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="RevisionAct">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="RevisionActDate" type="xs:dateTime" />
      <xs:element minOccurs="1" maxOccurs="1" name="DeteriorationRate" nillable="true" type="xs:float" />
      <xs:element minOccurs="0" maxOccurs="1" name="Organization" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="BuildingComponent" type="BuildingComponentEnum" />
      <xs:element minOccurs="0" maxOccurs="1" name="RecommendedWorks" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="BuildingComponentEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Foundations" />
      <xs:enumeration value="Basements" />
      <xs:enumeration value="Walls" />
      <xs:enumeration value="Overlaps" />
      <xs:enumeration value="Columns" />
      <xs:enumeration value="OverlapBeams" />
      <xs:enumeration value="Roofs" />
      <xs:enumeration value="Stairs" />
      <xs:enumeration value="Facades" />
      <xs:enumeration value="Septum" />
      <xs:enumeration value="Trim" />
      <xs:enumeration value="PremiseFloor" />
      <xs:enumeration value="WindowFillingSpace" />
      <xs:enumeration value="Chutes" />
      <xs:enumeration value="Stoves" />
      <xs:enumeration value="Lifts" />
      <xs:enumeration value="IndividualHeating" />
      <xs:enumeration value="Ventilation" />
      <xs:enumeration value="HeatingSystem" />
      <xs:enumeration value="HotWaterSystem" />
      <xs:enumeration value="ColdWaterSystem" />
      <xs:enumeration value="Sewerage" />
      <xs:enumeration value="GasSystem" />
      <xs:enumeration value="ElectricalSystem" />
      <xs:enumeration value="TelecommunicationsEquipment" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ArrayOfResourceInput">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ResourceInput" nillable="true" type="ResourceInput" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ResourceInput">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Place" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="UtilityService" type="UtilityServiceEnum" />
      <xs:element minOccurs="0" maxOccurs="1" name="MeteringDevice" type="MeteringDevice" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="UtilityServiceEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="ColdWater" />
      <xs:enumeration value="HotWater" />
      <xs:enumeration value="Electric" />
      <xs:enumeration value="Gas" />
      <xs:enumeration value="ThermalEnergy" />
      <xs:enumeration value="GasInBallon" />
      <xs:enumeration value="SolidFuel" />
      <xs:enumeration value="Sewerage" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="MeteringDevice">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="DeviceNumber" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="InstallationDate" nillable="true" type="xs:dateTime" />
      <xs:element minOccurs="1" maxOccurs="1" name="StartUpDate" nillable="true" type="xs:dateTime" />
      <xs:element minOccurs="1" maxOccurs="1" name="InspectionDate" nillable="true" type="xs:dateTime" />
      <xs:element minOccurs="1" maxOccurs="1" name="Type" type="MeteringDeviceTypeEnum" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="MeteringDeviceTypeEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Standard" />
      <xs:enumeration value="TwoTariff" />
      <xs:enumeration value="Automatic" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ShortFallAct">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Period" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="UtilityShortFailActCount" type="xs:int" />
      <xs:element minOccurs="1" maxOccurs="1" name="AppliedSanctionSum" type="xs:decimal" />
      <xs:element minOccurs="1" maxOccurs="1" name="PeopleApplicationCount" type="xs:int" />
    </xs:sequence>
  </xs:complexType>
</xs:schema>