<?xml version="1.0" encoding="UTF-8"?>
<!-- DAŇOVÉ PRIZNANIE K DOROVNÁVACEJ DANI(DPDDv24) -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xsd:annotation>
        <xsd:documentation>DPDDv24</xsd:documentation>
    </xsd:annotation>
    <!-- prazdny retazec -->
    <xsd:simpleType name="emptyStr">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value=""/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="singleDigitChar">
        <xsd:restriction base="xsd:string">
            <xsd:length value="1"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!-- nepovinna boolovska hodnota -->
    <xsd:simpleType name="optBool">
        <xsd:union memberTypes="xsd:boolean emptyStr"/>
    </xsd:simpleType>
    <!-- datum v hlavickovej casti -->
    <xsd:simpleType name="date">
        <xsd:restriction base="xsd:string">
            <xsd:pattern
                value="(((([0])?[1-9])|([1-2][0-9])|([3][0]))[.]((([0])?[13-9])|([1][0-2]))[.]([0-9][0-9][0-9][0-9]))"/>
            <xsd:pattern value="([3][1][.]((([0])?[13578])|([1][02]))[.]([0-9][0-9][0-9][0-9]))"/>
            <xsd:pattern
                value="(((([0])?[1-9])|([1][0-9])|([2][0-8]))[.]([0])?[2][.]([0-9][0-9][0-9][0-9]))"/>
            <xsd:pattern value="([2][9][.]([0])?[2])[.][0-9][0-9][13579][26]"/>
            <xsd:pattern value="([2][9][.]([0])?[2])[.][0-9][0-9][02468][048]"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!-- nepovinny datum -->
    <xsd:simpleType name="hlavickaOptDate">
        <xsd:union memberTypes="date emptyStr"/>
    </xsd:simpleType>
    <!-- nepovinne cele cislo -->
    <xsd:simpleType name="optInt">
        <xsd:union memberTypes="xsd:integer emptyStr"/>
    </xsd:simpleType>
    <!-- nepovinne desatinne cislo -->
    <xsd:simpleType name="optDec">
        <xsd:union memberTypes="decimalWithTwoDec emptyStr"/>
    </xsd:simpleType>
    <!-- cislo tvaru N (12.2) -->
    <xsd:simpleType name="decimalWithTwoDec">
        <xsd:restriction base="xsd:decimal">
            <xsd:totalDigits value="12"/>
            <xsd:fractionDigits value="2"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!-- korenovy element dokumentu -->
    <xsd:element name="dokument">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="hlavicka" type="hlavicka"/>
                <xsd:element name="telo" type="telo"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:complexType name="hlavicka">
        <xsd:sequence>
            <xsd:element name="dic" type="xsd:string"/>
            <xsd:element name="ico" type="xsd:string"/>
            <xsd:element name="pravnaForma" type="xsd:string"/>
            <xsd:element name="typDP" type="typDP"/>
            <xsd:element name="zdanObdobie" type="zdanObdType"/>
            <xsd:element name="obchodneMeno" type="menoType"/>
            <xsd:element name="typDanovnika" type="singleDigitChar"/>
            <xsd:element name="sidlo" type="adresaType"/>
            <xsd:element name="stalaPrevadzkaren" type="adresaPrevadzkarneType"/>
            <xsd:element name="udajeSkupiny" type="udajeSkupinyType"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="typDP">
        <xsd:sequence>
            <xsd:element name="rdp" type="only_0_1"/>
            <xsd:element name="odp" type="only_0_1"/>
            <xsd:element name="ddp" type="only_0_1"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="osobaType">
        <xsd:sequence>
            <xsd:element name="priezvisko" type="xsd:string"/>
            <xsd:element name="meno" type="xsd:string"/>
            <xsd:element name="titul" type="xsd:string"/>
            <xsd:element name="titulZa" type="xsd:string"/>
            <xsd:element name="vztahKPravnickejOsobe" type="xsd:string"/>
            <xsd:element name="trvalyPobyt" type="adresaType"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="zdanObdType">
        <xsd:sequence>
            <xsd:element name="datumOd" type="oneFieldDate"/>
            <xsd:element name="datumDo" type="oneFieldDate"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="menoType">
        <xsd:sequence>
            <xsd:element name="riadok" type="xsd:string" maxOccurs="3"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="adresaType">
        <xsd:sequence>
            <xsd:element name="ulica" type="xsd:string"/>
            <xsd:element name="cislo" type="xsd:string"/>
            <xsd:element name="psc" type="xsd:string"/>
            <xsd:element name="obec" type="xsd:string"/>
            <xsd:element name="stat" type="xsd:string"/>
            <xsd:element name="telefon" type="xsd:string"/>
            <xsd:element name="email" type="xsd:string"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="vratenieType">
        <xsd:sequence>
            <xsd:element name="vratitDanPreplatok" type="only_0_1"/>
            <xsd:element name="sposobPlatby" type="sposobPlatbyType"/>
            <xsd:element name="bankovyUcet" type="bankovyUcetType"/>
            <xsd:element name="datum" type="oneFieldDate"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="opravnenaOsoba">
        <xsd:sequence>
            <xsd:element name="menoPriezvisko" type="xsd:string"/>
            <xsd:element name="telefon" type="xsd:string"/>
            <xsd:element name="email" type="xsd:string"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="telo">
        <xsd:sequence>
            <xsd:element name="r25" type="xsd:string"/>
            <xsd:element name="r26" type="optDec"/>
            <xsd:element name="r27" type="optDec"/>
            <xsd:element name="r28" type="optDec"/>
            <xsd:element name="r29" type="optDec"/>
            <xsd:element name="r30" type="optDec"/>
            <xsd:element name="r31" type="optDec"/>
            <xsd:element name="r32" type="optDec"/>
            <xsd:element name="r33" type="optDec"/>
            <xsd:element name="r34" type="optDec"/>
            <xsd:element name="r35" type="optDec"/>
            <xsd:element name="r36" type="optDec"/>
            <xsd:element name="datumZistenia" type="oneFieldDate"/>
            <xsd:element name="r37" type="optDec"/>
            <xsd:element name="r38" type="optDec"/>
            <xsd:element name="osobitneZaznamyDanovnika" type="xsd:string"/>
            <xsd:element name="opravnenaOsoba" type="osobaType"/>
            <xsd:element name="datumVyhlasenia" type="oneFieldDate"/>
            <xsd:element name="vrateniePreplatku" type="vratenieType"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:simpleType name="only_0_1">
        <xsd:restriction base="xsd:decimal">
            <xsd:totalDigits value="1"/>
            <xsd:pattern value="[0-1]"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="oneFieldDate">
        <xsd:union memberTypes="date emptyStr"/>
    </xsd:simpleType>
    <xsd:complexType name="adresaPrevadzkarneType">
        <xsd:sequence>
            <xsd:element name="ulica" type="xsd:string"/>
            <xsd:element name="cislo" type="xsd:string"/>
            <xsd:element name="psc" type="xsd:string"/>
            <xsd:element name="obec" type="xsd:string"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="udajeSkupinyType">
        <xsd:sequence>
            <xsd:element name="nazovSkupiny" type="xsd:string"/>
            <xsd:element name="nazovHlavnehoSubjektu" type="xsd:string"/>
            <xsd:element name="dic" type="xsd:string"/>
            <xsd:element name="stat" type="xsd:string"/>
            <xsd:element name="podavajuciSubjekt" type="singleDigitChar"/>
            <xsd:element name="dicPodavajuceho" type="xsd:string"/>
            <xsd:element name="statPodavajuceho" type="xsd:string"/>
            <xsd:element name="nazovPodavajuceho" type="xsd:string"/>
            <xsd:element name="vynimkyPar31" type="only_0_1"/>
            <xsd:element name="vynimkyPar32" type="only_0_1"/>
            <xsd:element name="vynimkyPar32a" type="only_0_1"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="bankovyUcetType">
        <xsd:sequence>
            <xsd:element name="IBAN" type="xsd:string"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="sposobPlatbyType">
        <xsd:sequence>
            <xsd:element name="poukazka" type="only_0_1"/>
            <xsd:element name="ucet" type="only_0_1"/>
        </xsd:sequence>
    </xsd:complexType>
</xsd:schema>
