﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="IndividualHouses" nillable="true" type="IndividualHouses" />
  <xs:complexType name="IndividualHouses">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="Buildings" type="ArrayOfBuilding" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfBuilding">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="unbounded" name="Building" nillable="true" type="Building" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Building">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="Address" type="Address" > <!-- Адрес --> </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="PlanningInformation" type="PlanningInformation" > <!--Базовая информация--> </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="PremiseInformations" type="ArrayOfPremiseInformation"> <!--информация по помещениям--> </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="ColdWaterInformation" type="ColdWaterInformation"> <!--информация о системе холодного водоснабжения-->   </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="HotWaterInformation" type="HotWaterInformation" > <!--информация о системе горячего водоснабжения--> </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="ElectricalSystemInformation" type="ElectricalSystemInformation"> <!--информация о системе электроснабжения-->  </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="GasSupplyInformation" type="GasSupplyInformation"><!--информация о системе газоснабжения--> </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="HeatSystemInformation" type="HeatSystemInformation"><!--информация о системе теплоснабжения--> </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="SewerageInformation" type="SewerageInformation" > <!--информация о системе водоотведения-->  </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Address">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="District" type="xs:string"><!--район--></xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="City" type="xs:string"><!--город--> </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="Street" type="xs:string"> <!--улица--> </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="House" type="xs:string"> <!--номер дома--></xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PlanningInformation">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="BuildYear" type="xs:short"> <!--год постройки--> </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="FloorCount" type="xs:unsignedByte"><!--количество этажей--></xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="TotalArea" type="xs:decimal"> <!--общая площадь--> </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="TotalHabitableArea" type="xs:decimal"> <!--общая жилая площадь--> </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="ResidentCount" type="xs:short"> <!--количество проживающих--></xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="WallType" type="WallTypeEnum"><!--материал стен--></xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="DeteriorationTotalRate" type="xs:float"><!--процент износа --></xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="RamshackleDocumentId" type="Document"> <!--документ о признании дома аварайным--></xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="DemolishedDocument" type="Document" >  <!--документ о сносе дома--></xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="WallTypeEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Panel" >  <!--панельные--> </xs:enumeration>
      <xs:enumeration value="Brick" > <!--кирпичные--> </xs:enumeration>
      <xs:enumeration value="Monolithic" > <!--монолитные--> </xs:enumeration>
      <xs:enumeration value="Other" > <!--прочие--> </xs:enumeration>
      <xs:enumeration value="Stone" > <!--каменные--> </xs:enumeration>
      <xs:enumeration value="Block"  > <!--блочные--> </xs:enumeration>
      <xs:enumeration value="Hybrid" > <!--смешанные--> </xs:enumeration>
      <xs:enumeration value="Wooden" > <!--деревянные--> </xs:enumeration>
      <xs:enumeration value="Concreet" > <!--бетон--> </xs:enumeration>
      <xs:enumeration value="газобетон" />
      <xs:enumeration value="гипсолитовые" />
      <xs:enumeration value="карамзитобетон" />
      <xs:enumeration value="паромакс" />
      <xs:enumeration value="пенобетон" />
      <xs:enumeration value="пеноблоки" />
      <xs:enumeration value="пенополистирол" />
      <xs:enumeration value="стекломагнезитовые_плиты" />
      <xs:enumeration value="шлакоблок" />
      <xs:enumeration value="саманные" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="Document">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="Number" type="xs:string" > <!--номер документа--> </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="Date" type="xs:dateTime" > <!--дата докомента--> </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfPremiseInformation">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="unbounded" name="PremiseInformation" nillable="true" type="PremiseInformation" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PremiseInformation">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="Number" type="xs:string" > <!--номер помещения--> </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="UsingPurpose" type="UsingPurposeEnum" > <!--цель использования--> </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="Type" type="PremiseTypeEnum" > <!--тип помещения(жилое/нежилое)--> </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="RegistredPersonCount" type="xs:int" > <!--количество зарегестрированных человек--> </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="TotalArea" type="xs:decimal" > <!--общая площадь--> </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="PremiseOwners" type="ArrayOfPremiseOwner" > <!--собственники--> </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Childs" type="ArrayOfPremiseInformation" > <!--дочерние элементы--> </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="UsingPurposeEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Social" > <!--Социальное использование--> </xs:enumeration>
      <xs:enumeration value="Specialized" > <!--Специализированное использование--> </xs:enumeration>
      <xs:enumeration value="Individual" > <!--Индивидуальное использование--> </xs:enumeration>
      <xs:enumeration value="Commercial" > <!--Коммерческое использование--> </xs:enumeration>
      <xs:enumeration value="Maneuverable" > <!--Маневренный фонд--> </xs:enumeration>
      <xs:enumeration value="Nonresidential" > <!--Нежилое--> </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="PremiseTypeEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Habitable" > <!--жилое--> </xs:enumeration>
      <xs:enumeration value="Uninhabited" >  <!--нежилое--> </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ArrayOfPremiseOwner">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="unbounded" name="PremiseOwner" nillable="true" type="PremiseOwner" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PremiseOwner">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="LegalEntity" type="LegalEntityOwner"> <!--собственник юр. лицо--> </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="PhysicalPerson" type="PhysicalPersonOwner" > <!--собственник физ. лицо--> </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="LegalEntityOwner">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="FullName" type="xs:string" > <!--наименование организации--> </xs:element> 
      <xs:element minOccurs="1" maxOccurs="1" name="INN" type="xs:string" > <!--ИНН--> </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PhysicalPersonOwner">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="Surname" type="xs:string" >  <!--Фамилия--> </xs:element> 
      <xs:element minOccurs="1" maxOccurs="1" name="Name" type="xs:string" > <!--Имя--> </xs:element> 
      <xs:element minOccurs="1" maxOccurs="1" name="Patronymic" type="xs:string" >  <!--Отчество--> </xs:element> 
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ColdWaterInformation">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="ColdWaterType" type="ColdWaterTypeEnum" > <!--Тип системы холодного водоснабжения--> </xs:element> 
      <xs:element minOccurs="1" maxOccurs="1" name="IsExistODPU" type="xs:boolean" > <!--Присутствует домовой прибор учета--> </xs:element> 
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="ColdWaterTypeEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Central" />
      <xs:enumeration value="Individual" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="HotWaterInformation">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="HotWaterType" type="HotWaterTypeEnum" />
      <xs:element minOccurs="1" maxOccurs="1" name="IsExistODPU" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="HotWaterTypeEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Central" />
      <xs:enumeration value="AutonomousBoiler" />
      <xs:enumeration value="Flat" />
      <xs:enumeration value="IndividualHeater" />
      <xs:enumeration value="WoodColumn" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ElectricalSystemInformation">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="ElectricalSystemType" type="ElectricalSystemTypeEnum" />
      <xs:element minOccurs="1" maxOccurs="1" name="IsExistODPU" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="ElectricalSystemTypeEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Central" />
      <xs:enumeration value="Individual" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="GasSupplyInformation">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="ElectricalSystemType" type="ElectricalSystemTypeEnum" />
      <xs:element minOccurs="1" maxOccurs="1" name="IsExistODPU" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="HeatSystemInformation">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="HeatSystemType" type="HeatSystemTypeEnum" />
      <xs:element minOccurs="1" maxOccurs="1" name="IsExistODPU" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="HeatSystemTypeEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Central" />
      <xs:enumeration value="AutonomousBoiler" />
      <xs:enumeration value="Flat" />
      <xs:enumeration value="Stove" />
      <xs:enumeration value="Electrical" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="SewerageInformation">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="SewerageType" type="SewerageTypeEnum" />
      <xs:element minOccurs="1" maxOccurs="1" name="IsExistODPU" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="SewerageTypeEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Central" />
      <xs:enumeration value="Individual" />
    </xs:restriction>
  </xs:simpleType>
</xs:schema>