<?xml version="1.0" encoding="UTF-8"?>
<!-- Danove priznanie Dan z pridanej hodnoty (DPH2025) -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xsd:annotation>
        <xsd:documentation>DPHv25</xsd:documentation>
    </xsd:annotation>
    <!-- prazdny retazec -->
    <xsd:simpleType name="emptyStr">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value=""/>
        </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="identifikacneCislo" type="identifikacneCislo"/>
            <xsd:element name="dic" type="xsd:string"/>
            <xsd:element name="danovyUrad" type="xsd:string"/>
            <xsd:element name="nevzniklaPov" type="only_0_1"/>
            <xsd:element name="typDP" type="typDP"/>
            <xsd:element name="osoba" type="osoba"/>
            <xsd:element name="zdanObd" type="zdanObd"/>
            <xsd:element name="meno" type="meno"/>
            <xsd:element name="adresa" type="adresa"/>
            <xsd:element name="opravnenaOsoba" type="opravnenaOsoba"/>
            <xsd:element name="datumVyhlasenia" type="hlavickaOptDate"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="identifikacneCislo">
        <xsd:sequence>
            <xsd:element name="kodStatu" type="xsd:string"/>
            <xsd:element name="cislo" type="xsd:string"/>
        </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:element name="datumZisteniaDdp" type="hlavickaOptDate"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="osoba">
        <xsd:sequence>
            <xsd:element name="platitel" type="only_0_1"/>
            <xsd:element name="registrovana" type="only_0_1"/>
            <xsd:element name="inaPovinna" type="only_0_1"/>
            <xsd:element name="zdanitelna" type="only_0_1"/>
            <xsd:element name="zastupca" type="only_0_1"/>
            <xsd:element name="zastupca69aa" type="only_0_1"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="zdanObd">
        <xsd:sequence>
            <xsd:element name="mesiac" type="xsd:string"/>
            <xsd:element name="stvrtrok" type="xsd:string"/>
            <xsd:element name="rok" type="xsd:string"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="meno">
        <xsd:sequence>
            <xsd:element name="riadok" type="xsd:string" maxOccurs="4"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="adresa">
        <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="telefon" type="xsd:string"/>
            <xsd:element name="email" type="xsd:string"/>
        </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="r01" type="optDec"/>
            <xsd:element name="r01a" type="optDec"/>
            <xsd:element name="r02" type="optDec"/>
            <xsd:element name="r02a" type="optDec"/>
            <xsd:element name="r03" type="optDec"/>
            <xsd:element name="r04" type="optDec"/>
            <xsd:element name="r05" type="optDec"/>
            <xsd:element name="r05a" type="optDec"/>
            <xsd:element name="r06" type="optDec"/>
            <xsd:element name="r06a" type="optDec"/>
            <xsd:element name="r07" type="optDec"/>
            <xsd:element name="r08" type="optDec"/>
            <xsd:element name="r09" type="optDec"/>
            <xsd:element name="r09a" type="optDec"/>
            <xsd:element name="r09b" type="optDec"/>
            <xsd:element name="r10" type="optDec"/>
            <xsd:element name="r10a" type="optDec"/>
            <xsd:element name="r10b" type="optDec"/>
            <xsd:element name="r11" type="optDec"/>
            <xsd:element name="r11a" type="optDec"/>
            <xsd:element name="r11b" type="optDec"/>
            <xsd:element name="r11c" type="optDec"/>
            <xsd:element name="r11d" type="optDec"/>
            <xsd:element name="r11e" type="optDec"/>
            <xsd:element name="r12" type="optDec"/>
            <xsd:element name="r12a" type="optDec"/>
            <xsd:element name="r12b" type="optDec"/>
            <xsd:element name="r12c" type="optDec"/>
            <xsd:element name="r12d" type="optDec"/>
            <xsd:element name="r12e" type="optDec"/>
            <xsd:element name="r13" type="optDec"/>
            <xsd:element name="r14" type="optDec"/>
            <xsd:element name="r15" type="optDec"/>
            <xsd:element name="r16" type="optDec"/>
            <xsd:element name="r17" type="optDec"/>
            <xsd:element name="r18" type="optDec"/>
            <xsd:element name="r18a" type="optDec"/>
            <xsd:element name="r19" type="optDec"/>
            <xsd:element name="r20" type="optDec"/>
            <xsd:element name="r20a" type="optDec"/>
            <xsd:element name="r21" type="optDec"/>
            <xsd:element name="r22" type="optDec"/>
            <xsd:element name="r22a" type="optDec"/>
            <xsd:element name="r23" type="optDec"/>
            <xsd:element name="r23a" type="optDec"/>
            <xsd:element name="r23b" type="optDec"/>
            <xsd:element name="r23c" type="optDec"/>
            <xsd:element name="r24" type="optDec"/>
            <xsd:element name="r25" type="optDec"/>
            <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="splneniePodmienok" type="only_0_1" minOccurs="1"/>
            <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="r37" type="optDec"/>
        </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:schema>
