<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:annotation>
        <xs:documentation>DPSNNv25_1</xs:documentation>
    </xs:annotation>
    <xs:simpleType name="oneFieldDateType">
        <xs:restriction base="xs:string">
            <xs:pattern value="\d?\d\.\d?\d\.\d\d\d\d"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="optDec">
        <xs:union memberTypes="decimalWithTwoDec emptyStrType"/>
    </xs:simpleType>
    <xs:simpleType name="optDec8">
        <xs:union memberTypes="decimal8WithTwoDec emptyStrType"/>
    </xs:simpleType>
    <xs:simpleType name="optDec9">
        <xs:union memberTypes="decimal9WithTwoDec emptyStrType"/>
    </xs:simpleType>
    <xs:simpleType name="decimalWithTwoDec">
        <xs:restriction base="xs:decimal">
            <xs:totalDigits value="12"/>
            <xs:fractionDigits value="2"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="decimal9WithTwoDec">
        <xs:restriction base="xs:decimal">
            <xs:totalDigits value="11"/>
            <xs:fractionDigits value="2"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="decimal8WithTwoDec">
        <xs:restriction base="xs:decimal">
            <xs:totalDigits value="10"/>
            <xs:fractionDigits value="2"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="ibanType">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>
    <xs:simpleType name="optOneFieldDateType">
        <xs:union memberTypes="oneFieldDateType emptyStrType"/>
    </xs:simpleType>

	<xs:complexType name="monthYearType">
        <xs:sequence>
            <xs:element name="mesiac" type="month"/>
            <xs:element name="rok"    type="year"/>
        </xs:sequence>
    </xs:complexType>
	
    <xs:simpleType name="month">
        <xs:restriction base="xs:string">
            <xs:pattern value="\d{2}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="year">
        <xs:restriction base="xs:string">
            <xs:pattern value="\d{4}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="emptyStrType">
        <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="dayMonthType">
        <xs:restriction base="xs:decimal">
            <xs:pattern value="\d?\d"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="optDayMonthType">
        <xs:union memberTypes="dayMonthType emptyStrType"/>
    </xs:simpleType>
    <xs:simpleType name="yearType">
        <xs:restriction base="xs:decimal">
            <xs:pattern value="\d\d\d\d"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="optYearType">
        <xs:union memberTypes="yearType emptyStrType"/>
    </xs:simpleType>
    <xs:simpleType name="optDouble">
        <xs:union memberTypes="xs:double emptyStrType"/>
    </xs:simpleType>
    <xs:simpleType name="only_0_1">
        <xs:restriction base="xs:decimal">
            <xs:totalDigits value="1"/>
            <xs:pattern value="[0-1]"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="dicType">
        <xs:restriction base="xs:decimal">
            <xs:pattern value="\d{10}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="optDicType">
        <xs:union memberTypes="dicType emptyStrType"/>
    </xs:simpleType>
    <xs:simpleType name="icoType">
        <xs:restriction base="xs:integer">
            <xs:totalDigits value="12"/>
        </xs:restriction>
        <!--
		<xs:restriction base="xs:string">
			<xs:pattern value="\d{12}"/>
		</xs:restriction>
		-->
    </xs:simpleType>
    <xs:simpleType name="optIcoType">
        <xs:union memberTypes="icoType emptyStrType"/>
    </xs:simpleType>
    <xs:simpleType name="optDecimal">
        <xs:union memberTypes="xs:decimal emptyStrType"/>
    </xs:simpleType>
    <xs:simpleType name="optInt5">
        <xs:union memberTypes="cislo5 emptyStrType"/>
    </xs:simpleType>
    <xs:simpleType name="cislo5">
        <xs:restriction base="xs:integer">
            <xs:totalDigits value="5"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="druhPriznaniaType">
        <xs:sequence>
            <xs:element name="riadne" type="only_0_1"/>
            <xs:element name="opravne" type="only_0_1"/>
            <xs:element name="dodatocne" type="only_0_1"/>
            <xs:element name="datumDodatocnehoPriznania" type="optOneFieldDateType"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="zaObdobieType">
        <xs:sequence>
            <xs:element name="mesiac" type="optDayMonthType"/>
            <xs:element name="rok" type="optYearType"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="sidloType">
        <xs:sequence>
            <xs:element name="ulica" type="xs:string"/>
            <xs:element name="supisneOrientacneCislo" type="xs:string"/>
            <xs:element name="psc" type="xs:string"/>
            <xs:element name="obec" type="xs:string"/>
            <xs:element name="tel" type="xs:string"/>
            <xs:element name="email" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="mnozstvoADanType">
        <xs:sequence>
            <xs:element name="mnozstvo" type="optDec"/>
            <xs:element name="dan" type="optDec9"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="rozdielyType">
        <xs:sequence>
            <xs:element name="rozdielZakladuAOpravy" type="optDec9"/>
            <xs:element name="rozdielDaneAOpravy" type="optDec8"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="postavenieZdanOsobyType">
        <xs:sequence>
            <xs:element name="platitel" type="only_0_1"/>
            <xs:element name="exporter" type="only_0_1"/>
            <xs:element name="osobaPodlaPar11" type="only_0_1"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="opravnenaOsobaType">
        <xs:sequence>
            <xs:element name="menoPriezvisko" type="xs:string"/>
            <xs:element name="tel" type="xs:string"/>
            <xs:element name="email" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="osobaType">
        <xs:sequence>
            <xs:element name="obchodneMeno" type="obchodneMenoType"/>
            <xs:element name="sidlo" type="sidloType"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="obchodneMenoType">
        <xs:sequence>
            <xs:element maxOccurs="3" minOccurs="0" name="riadok" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="dokument">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="hlavicka" type="hlavickaType"/>
                <xs:element name="telo" type="teloType"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="hlavickaType">
        <xs:sequence>
            <xs:element name="dic" type="dicType"/>
            <xs:element name="postavenieOsoby" type="postavenieZdanOsobyType"/>
            <xs:element name="druhPriznania" type="druhPriznaniaType"/>
            <xs:element name="zdanovacieObdobie" type="monthYearType"/>
            <xs:element name="osoba" type="osobaType"/>
            <xs:element name="opravnenaOsoba" type="opravnenaOsobaType"/>
            <xs:element name="poznamky" type="xs:string"/>
            <xs:element name="datumVyhlasenia" type="oneFieldDateType"/>
            <xs:element name="zaznamyDU" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="teloType">
        <xs:sequence>
            <xs:element name="cast1" type="cast1Type"/>
            <xs:element name="cast2" type="cast2Type"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="cast1Type">
        <xs:sequence>
            <xs:element name="r01" type="mnozstvoADanType"/>
            <xs:element name="r02" type="mnozstvoADanType"/>
            <xs:element name="r03" type="mnozstvoADanType"/>
            <xs:element name="r04" type="mnozstvoADanType"/>
            <xs:element name="r05" type="mnozstvoADanType"/>
            <xs:element name="r06" type="mnozstvoADanType"/>
            <xs:element name="r07" type="mnozstvoADanType"/>
            <xs:element name="r08" type="mnozstvoADanType"/>
            <xs:element name="r09" type="mnozstvoADanType"/>
            <xs:element name="r10" type="mnozstvoADanType"/>
            <xs:element name="r11" type="mnozstvoADanType"/>
            <xs:element name="r12" type="mnozstvoADanType"/>
            <xs:element name="r13" type="mnozstvoADanType"/>
            <xs:element name="r14" type="mnozstvoADanType"/>
            <xs:element name="r15" type="mnozstvoADanType"/>
            <xs:element name="r16" type="mnozstvoADanType"/>
            <xs:element name="r17" type="optDec9"/>
            <xs:element name="r18" type="rozdielyType"/>
            <xs:element name="r19" type="rozdielyType"/>
            <xs:element name="r20" type="rozdielyType"/>
            <xs:element name="r21" type="rozdielyType"/>
            <xs:element name="r22" type="rozdielyType"/>
            <xs:element name="r23" type="rozdielyType"/>
            <xs:element name="r24" type="rozdielyType"/>
            <xs:element name="r25" type="rozdielyType"/>
            <xs:element name="r26" type="optDec8"/>
            <xs:element name="r27" type="optDec8"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="cast2Type">
        <xs:sequence>
            <xs:element name="iban" type="xs:string"/>
            <xs:element name="r01" type="mnozstvoADanType"/>
            <xs:element name="r02" type="mnozstvoADanType"/>
            <xs:element name="r03" type="mnozstvoADanType"/>
            <xs:element name="r04" type="mnozstvoADanType"/>
            <xs:element name="r05" type="mnozstvoADanType"/>
            <xs:element name="r06" type="mnozstvoADanType"/>
            <xs:element name="r07" type="mnozstvoADanType"/>
            <xs:element name="r08" type="mnozstvoADanType"/>
            <xs:element name="r09" type="mnozstvoADanType"/>
            <xs:element name="r10" type="mnozstvoADanType"/>
            <xs:element name="r11" type="mnozstvoADanType"/>
            <xs:element name="r12" type="mnozstvoADanType"/>
            <xs:element name="r13" type="mnozstvoADanType"/>
            <xs:element name="r14" type="mnozstvoADanType"/>
            <xs:element name="r15" type="mnozstvoADanType"/>
            <xs:element name="r16" type="mnozstvoADanType"/>
            <xs:element name="r17" type="optDec8"/>
            <xs:element name="r18" type="optDec8"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>
