Explorar el Código

ЗВСП: Структура адреса от ФИАС

MOZART\volod hace 2 meses
padre
commit
47292b1bc6
Se han modificado 1 ficheros con 324 adiciones y 107 borrados
  1. 324 107
      src/main/resources/xsd/звсп/реестр.xsd

+ 324 - 107
src/main/resources/xsd/звсп/реестр.xsd

@@ -1,123 +1,340 @@
-<?xml version="1.0" encoding="utf-8"?>
-<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <xs:element name="Реестр">
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+  <xs:simpleType name="emptyOrDate">
+    <xs:union memberTypes="xs:date">
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value=""/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+  <xs:simpleType name="emptyOrDateTime">
+    <xs:union memberTypes="xs:dateTime">
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value=""/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+  <xs:simpleType name="GUID">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+        The representation of a GUID, generally the id of an element.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:pattern value="\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:complexType name="AddressType">
+    <xs:sequence>
+      <xs:element name="СубъектРФ" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation xml:lang="ru">Субъект Российской Федерации</xs:documentation>
+        </xs:annotation>
+      </xs:element>      
+      <xs:element name="АдминистративныйРайон" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation xml:lang="ru">ГАР: Административный район</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="МуниципальныйРайон" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation xml:lang="ru">ГАР: Муниципальный район</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ТипПоселения" type="xs:string" minOccurs="0"></xs:element>      
+      <xs:element name="Поселение" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation xml:lang="ru">ГАР: 	Сельское/городское поселение</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="Город" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation xml:lang="ru">ГАР: Город</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ТипНаселенногоПункта" type="xs:string" minOccurs="0"></xs:element>      
+      <xs:element name="НаселенныйПункт" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation xml:lang="ru">ГАР: Населенный пункт</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ТипРайона" type="xs:string" minOccurs="0"></xs:element>
+      <xs:element name="Район" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation xml:lang="ru">ГАР: Элемент планировочной структуры</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ТипУлицы" type="xs:string" minOccurs="0"></xs:element>
+      <xs:element name="Улица" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation xml:lang="ru">ГАР: Элемент улично-дорожной сети</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ТипДома" type="xs:string" minOccurs="0"></xs:element>
+      <xs:element name="Дом" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation xml:lang="ru">ГАР: Здание (сооружение)</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="Участок" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation xml:lang="ru">ГАР: Земельный участок</xs:documentation>
+        </xs:annotation>
+      </xs:element>      
+      <xs:element name="Помещение" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation xml:lang="ru">ГАР: Помещение (квартира)</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="УИН" type="GUID" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation xml:lang="ru">ГАР: Уникальный идентификационный номер</xs:documentation>
+        </xs:annotation>
+      </xs:element>      
+    </xs:sequence>
+  </xs:complexType>
+  <xs:simpleType name="OGRNType">
+    <xs:annotation>
+      <xs:documentation xml:lang="ru">ОГРН</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:length value="13"/>
+      <xs:pattern value="\d{13}"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="INNType">
+    <xs:annotation>
+      <xs:documentation xml:lang="ru">ИНН юр. лица</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:pattern value="([^0^\D]\d|\d[^0^\D])\d{8}"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="INNAllType">
+    <xs:annotation>
+      <xs:documentation xml:lang="ru">ИНН юр. лица и физ. лица</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:pattern value="([^0^\D]\d|\d[^0^\D])\d{8}"/>
+      <xs:pattern value="([^0^\D]\d|\d[^0^\D])\d{10}"/>
+      <xs:pattern value="[1-9]\d{4}|\d{1}[1-9]\d{3}|\d{2}[1-9]\d{2}|\d{3}[1-9]\d{1}|\d{4}[1-9]"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="KPPType">
+    <xs:annotation>
+      <xs:documentation xml:lang="ru">КПП юр. лица</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:pattern value="([^0^\D]\d|\d[^0^\D])\d{2}[A-Z0-9]{2}\d{3}">
+        <xs:annotation>
+          <xs:documentation xml:lang="ru">9 символов, пятый и шестой из которых могут быть прописными
+            (заглавными) латинскими буквами или цифрами, а все остальные только цифрами,
+            и при этом первый и второй знаки (цифры) не могут одновременно принимать
+            значение ноль ("0").</xs:documentation>
+        </xs:annotation>
+      </xs:pattern>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:element name="PersonType">
+  
+  </xs:element>
+  <xs:element name="Реестр">   
     <xs:complexType>
       <xs:sequence>
-        <xs:element maxOccurs="unbounded" name="Заявление">
+        <xs:element maxOccurs="unbounded" ref="Заявление"/>
+      </xs:sequence>
+      <xs:attribute name="ДатаРеестра" use="required" type="xs:dateTime"/>
+      <xs:attribute name="КодКонтрагента" use="required" type="xs:integer"/>
+      <xs:attribute name="КодРеестра" use="required" type="xs:integer"/>
+      <xs:attribute name="Контрагент" use="required"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="Заявление">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="ИД"/>
+        <xs:element name="ЛС" type="xs:NMTOKEN"/>
+        <xs:element name="НачалоПериодаДолга" type="emptyOrDateTime" />
+        <xs:element name="КонецПериодаДолга" type="emptyOrDateTime" />
+        <xs:element name="СуммаЗадолженности" type="xs:decimal"/>
+        <xs:element name="СуммаГоспошлины" type="xs:decimal"/>
+        <xs:element name="НачалоПериодаРасчетаПени" type="emptyOrDate" />
+        <xs:element name="КонецПериодаРасчетаПени"  type="emptyOrDate" />
+        <xs:element name="СуммаПени" type="xs:decimal"/>
+        <xs:element ref="СудебныйУчасток"/>
+        <xs:element name="АдресЗадолженности" type="xs:string" />
+<!--          <xs:complexType>
+            <xs:sequence>
+              <xs:choice>
+                <xs:element name="Адрес" type="AddressType">
+                </xs:element>
+              </xs:choice>
+              <xs:element name="КадастровыйНомер" type="xs:string"/>
+            </xs:sequence>
+          </xs:complexType> 
+        </xs:element> -->
+        <xs:element ref="Должники"/>
+        <xs:element ref="Услуги"/>
+        <xs:element ref="ДопРасходы"/>
+      </xs:sequence>
+      <xs:attribute name="КодСтрокиРеестра" use="required" type="xs:integer"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ИД">
+    <xs:complexType/>
+  </xs:element>
+  <xs:element name="СудебныйУчасток">
+    <xs:complexType mixed="true">
+      <xs:attribute name="Код" use="required" type="xs:integer"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="Должники">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="СтрокаДолжники" maxOccurs="unbounded">
+          <xs:annotation>
+            <xs:documentation xml:lang="ru">Физическое лицо</xs:documentation>
+          </xs:annotation>
           <xs:complexType>
             <xs:sequence>
-              <xs:element name="ИД" type="xs:string" />
-              <xs:element name="ЛС" type="xs:string" />
-              <xs:element name="НачалоПериодаДолга" type="xs:dateTime" />
-              <xs:element name="КонецПериодаДолга" type="xs:dateTime" />
-              <xs:element name="СуммаЗадолженности" type="xs:decimal" />
-              <xs:element name="СуммаГоспошлины" type="xs:decimal" />
-              <xs:element name="НачалоПериодаРасчетаПени" type="xs:dateTime" xsi:nil="true"/>
-              <xs:element name="КонецПериодаРасчетаПени" type="xs:dateTime" xsi:nil="true"/>
-              <xs:element name="СуммаПени" type="xs:decimal" />
-
-              <xs:element maxOccurs="1" name="СудебныйУчасток">
-                <xs:complexType>
-                  <xs:simpleContent>
-                    <xs:extension base="xs:string">
-                      <xs:attribute name="Код" type="xs:unsignedInt" use="required" />
-                    </xs:extension>
-                  </xs:simpleContent>
-                </xs:complexType>
-              </xs:element>
-
-              <xs:element name="АдресЗадолженности" type="xs:string" />
-
-              <xs:element maxOccurs="1" name="Должники">
+              <xs:element name="ФИО" type="xs:string"/>
+              <xs:element name="ДатаРождения" type="xs:date" minOccurs="0" />
+              <xs:element name="МестоРождения" type="xs:string" minOccurs="0"/>
+              <xs:element name="Идентификатор" type="xs:string" minOccurs="0"/>
+              <xs:element name="ДокументУдостоверяющийЛичность" minOccurs="0">
+                <xs:annotation>
+                  <xs:documentation xml:lang="ru">Документ, удостоверяющий личность</xs:documentation>
+                </xs:annotation>    
                 <xs:complexType>
                   <xs:sequence>
-                    <xs:element maxOccurs="unbounded" name="СтрокаДолжники">
-                      <xs:complexType>
-                        <xs:sequence>
-                          <xs:element name="ФИО" type="xs:string" />
-                          <xs:element name="ДатаРождения" type="xs:date" />
-                          <xs:element name="МестоРождения" type="xs:string" />
-                          <xs:element name="Идентификатор" type="xs:string" />
-                          <xs:element maxOccurs="1" name="ДокументУдостоверяющийЛичность">
-                            <xs:complexType>
-                              <xs:sequence>
-                                <xs:element name="ВидДокумента" type="xs:string" />
-                                <xs:element name="Серия" type="xs:string" />
-                                <xs:element name="Номер" type="xs:string" />
-                              </xs:sequence>
-                            </xs:complexType>
-                          </xs:element>
-                          <xs:element name="ИНН" type="xs:string" />
-                          <xs:element name="СНИЛС" type="xs:string" />
-                          <xs:element maxOccurs="1" name="МестоРегистрации">
-                            <xs:complexType>
-                              <xs:sequence>
-                                <xs:element name="Субъект" type="xs:string" />
-                                <xs:element name="Район" type="xs:string" />
-                                <xs:element name="НаселенныйПункт" type="xs:string" />
-                                <xs:element name="Улица" type="xs:string" />
-                                <xs:element name="Дом" type="xs:string" />
-                                <xs:element name="Квартира" type="xs:string" />
-                              </xs:sequence>
-                            </xs:complexType>
-                          </xs:element>
-                        </xs:sequence>
-                        <xs:attribute name="НомерСтроки" type="xs:unsignedInt" use="required" />
-                        <xs:attribute name="КодДолжника" type="xs:unsignedInt" use="required" />
-                    </xs:complexType>
-                  </xs:element>
-                 </xs:sequence>
+                    <xs:element name="ВидДокумента">
+                      <xs:annotation>
+                        <xs:documentation xml:lang="ru">Код документа, удостоверяющего личность</xs:documentation>
+                      </xs:annotation>
+                      <xs:simpleType>
+                        <xs:restriction base="xs:string">
+                          <xs:enumeration value="10">
+                            <xs:annotation>
+                              <xs:documentation xml:lang="ru">Документ иностранного гражданина</xs:documentation>
+                            </xs:annotation>
+                          </xs:enumeration>              
+                          <xs:enumeration value="12">
+                            <xs:annotation>
+                              <xs:documentation xml:lang="ru">	
+                                Вид на жительство в Российской Федерации</xs:documentation>
+                            </xs:annotation>
+                          </xs:enumeration>
+                          <xs:enumeration value="13">
+                            <xs:annotation>
+                              <xs:documentation xml:lang="ru">	
+                                Вид на жительство в Российской Федерации</xs:documentation>
+                            </xs:annotation>
+                          </xs:enumeration>
+                          <xs:enumeration value="14">
+                            <xs:annotation>
+                              <xs:documentation xml:lang="ru">	
+                                Временное удостоверение личности гражданина Российской Федерации</xs:documentation>
+                            </xs:annotation>
+                          </xs:enumeration>
+                          <xs:enumeration value="21">
+                            <xs:annotation>
+                              <xs:documentation xml:lang="ru">Паспорт гражданина Российской Федерации</xs:documentation>
+                            </xs:annotation>
+                          </xs:enumeration>
+                        </xs:restriction>
+                      </xs:simpleType>
+                    </xs:element>
+                    <xs:element name="Серия">
+                      <xs:annotation>
+                        <xs:documentation xml:lang="ru">Серия</xs:documentation>
+                      </xs:annotation>
+                      <xs:simpleType>
+                        <xs:restriction base="xs:string">
+                          <xs:maxLength value="45"/>
+                        </xs:restriction>
+                      </xs:simpleType>          
+                    </xs:element>
+                    <xs:element name="Номер">
+                      <xs:annotation>
+                        <xs:documentation xml:lang="ru">Номер</xs:documentation>
+                      </xs:annotation>
+                      <xs:simpleType>
+                        <xs:restriction base="xs:string">
+                          <xs:maxLength value="45"/>
+                        </xs:restriction>
+                      </xs:simpleType>
+                    </xs:element>
+                  </xs:sequence>
                 </xs:complexType>
               </xs:element>
-
-              <xs:element maxOccurs="1" name="Услуги">
-                <xs:complexType>
-                  <xs:sequence>
-                    <xs:element maxOccurs="unbounded" name="СтрокаУслуги">
-                      <xs:complexType>
-                        <xs:sequence>
-                          <xs:element maxOccurs="1" name="Услуга">
-                            <xs:complexType>
-                              <xs:simpleContent>
-                                <xs:extension base="xs:string">
-                                  <xs:attribute name="Код" type="xs:unsignedInt" use="required" />
-                                </xs:extension>
-                              </xs:simpleContent>
-                            </xs:complexType>
-                          </xs:element>
-                          <xs:element name="НачалоПериода" type="xs:dateTime" />
-                          <xs:element name="КонецПериода" type="xs:dateTime" />
-                          <xs:element name="Сумма" type="xs:decimal" />
-                        </xs:sequence>
-                        <xs:attribute name="НомерСтроки" type="xs:unsignedInt" use="required" />
-                    </xs:complexType>
-                  </xs:element>
-                 </xs:sequence>
-                </xs:complexType>
+              <xs:element name="ИНН" type="INNAllType" minOccurs="0"/>
+              <xs:element name="СНИЛС" minOccurs="0">
+                <xs:annotation>
+                  <xs:documentation xml:lang="ru">СНИЛС физического лица</xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                  <xs:restriction base="xs:string">
+                    <xs:pattern value="\d{11}"/>
+                  </xs:restriction>
+                </xs:simpleType>
               </xs:element>
-
-              <xs:element maxOccurs="1" name="ДопРасходы">
-                <xs:complexType>
-                  <xs:sequence>
-                    <xs:element maxOccurs="unbounded" name="СтрокаДопРасхода">
-                      <xs:complexType>
-                        <xs:attribute name="Тип" type="xs:string" />
-                        <xs:attribute name="Сумма" type="xs:decimal" />
-                    </xs:complexType>
-                  </xs:element>
-                 </xs:sequence>
-                </xs:complexType>
+              <xs:element name="МестоРегистрации" type="AddressType" minOccurs="0">
+                <xs:annotation>
+                  <xs:documentation xml:lang="ru">
+                    Место регистрации должника для ФЛ либо юридический адрес организации
+                  </xs:documentation>
+                </xs:annotation>
               </xs:element>
-
             </xs:sequence>
-            <xs:attribute name="КодСтрокиРеестра" type="xs:unsignedInt" use="required" />
+            <xs:attribute name="КодДолжника" use="required" type="xs:integer"/>
+            <xs:attribute name="НомерСтроки" use="required" type="xs:integer"/>
+          </xs:complexType>          
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="Услуги">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="СтрокаУслуги"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="СтрокаУслуги">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="Услуга">
+          <xs:complexType>
+            <xs:simpleContent>
+              <xs:extension base="xs:NCName">
+                <xs:attribute name="Код" use="required" type="xs:integer"/>
+              </xs:extension>
+            </xs:simpleContent>
           </xs:complexType>
         </xs:element>
+        <xs:element name="НачалоПериода" type="xs:dateTime"/>
+        <xs:element name="КонецПериода" type="xs:dateTime"/>
+        <xs:element name="Сумма" type="xs:decimal"/>
       </xs:sequence>
-      <xs:attribute name="Контрагент" type="xs:string" use="required" />
-      <xs:attribute name="КодКонтрагента" type="xs:unsignedInt" use="required" />
-      <xs:attribute name="ДатаРеестра" type="xs:dateTime" use="required" />
-      <xs:attribute name="КодРеестра" type="xs:unsignedInt" use="required" />
+      <xs:attribute name="НомерСтроки" use="required" type="xs:integer"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="ДопРасходы">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="СтрокаДопРасхода"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="СтрокаДопРасхода">
+    <xs:complexType>
+      <xs:attribute name="Тип" use="required"/>
     </xs:complexType>
   </xs:element>
-</xs:schema>
+</xs:schema>