<?xml version="1.0" encoding="UTF-8"?>
<!-- Vseobecne podanie pre FS - DAC8 -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:annotation>
        <xs:documentation>Všeobecné podanie pre FS - DAC8</xs:documentation>
    </xs:annotation>

    <!-- Retazec - lubovolny retazec -->
    <xs:simpleType name="ldt_Retazec">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>

    <!-- RadioButton - hodnoty 0 a 1 -->
    <xs:simpleType name="ldt_RadioButton">
        <xs:restriction base="xs:string">
            <xs:pattern value="[01]"/>
        </xs:restriction>
    </xs:simpleType>

    <!-- Druh prilohy - hodnoty 0, 1 a 2 -->
    <xs:simpleType name="ldt_DruhPrilohy">
        <xs:restriction base="xs:string">
            <xs:pattern value="[012]"/>
        </xs:restriction>
    </xs:simpleType>

    <!-- Datum -->
    <xs:simpleType name="ldt_Datum">
        <xs:restriction base="xs:date"/>
    </xs:simpleType>

    <!-- PSC -->
    <xs:simpleType name="ldt_PSC">
        <xs:restriction base="xs:string">
            <xs:maxLength value="10"/>
        </xs:restriction>
    </xs:simpleType>

    <!-- TextArea - viacriadkovy dlhy text max. 2000 znakov -->
    <xs:simpleType name="ldt_TextArea">
        <xs:restriction base="xs:string">
            <xs:maxLength value="2000"/>
        </xs:restriction>
    </xs:simpleType>

    <!-- Evidencne cislo suvisiaceho dokumentu -->
    <xs:simpleType name="ldt_EvCisloSuvDok">
        <xs:restriction base="xs:string">
            <xs:pattern value="|\d{1,9}"/>
            <xs:maxLength value="9"/>
        </xs:restriction>
    </xs:simpleType>

    <!-- Rok -->
    <xs:simpleType name="ldt_Rok">
        <xs:restriction base="xs:string">
            <xs:pattern value="|\d{4}"/>
            <xs:maxLength value="4"/>
        </xs:restriction>
    </xs:simpleType>

    <!-- IIN_IdentificationNumber -->
    <xs:simpleType name="ldt_edane_txt20">
        <xs:restriction base="xs:string">
            <xs:maxLength value="20"/>
        </xs:restriction>
    </xs:simpleType>

    <!-- Korenovy element -->
    <xs:element name="dokument">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="secNazov" type="secNazovType" minOccurs="0"/>
                <xs:element name="secEvidencneCisloSuvisiacehoDOkumentu" type="secEvidencneCisloSuvisiacehoDokumentuType" minOccurs="0"/>
                <xs:element name="secAdresovanieVP" type="secAdresovanieVPType" minOccurs="0"/>
                <xs:element name="secOblastPodania" type="secOblastPodaniaType" minOccurs="0"/>
                <xs:element name="secDanSubjekt" type="secDanSubjektType" minOccurs="0"/>
                <xs:element name="secDruhPrilohy" type="secDruhPrilohyType" minOccurs="0"/>
                <xs:element name="secObsah" type="secObsahType" minOccurs="0"/>
                <xs:element name="secDokumentyPodania" type="secDokumentyPodaniaType" minOccurs="0"/>
                <xs:element name="secPrilohyPodania" type="secPrilohyPodaniaType" minOccurs="0"/>
                <xs:element name="secDatumPodania" type="secDatumPodaniaType" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="secNazovType">
        <xs:sequence>
            <xs:element name="valNazov" type="ldt_Retazec" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="secEvidencneCisloSuvisiacehoDokumentuType">
        <xs:sequence>
            <xs:element name="valEvidencneCisloSuvisiacehoDokumentu" type="ldt_EvCisloSuvDok" minOccurs="0"/>
            <xs:element name="valECSDRok" type="ldt_Rok" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="secAdresovanieVPType">
        <xs:sequence>
            <xs:element name="valOrganFS" type="xs:string"/>
            <xs:element name="secAdresatDU" type="secAdresatDUType" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="secAdresatDUType">
        <xs:sequence>
            <xs:element name="valDanovyUrad" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="secOblastPodaniaType">
        <xs:sequence>
            <xs:element name="valOblastPodania" type="xs:string"/>
            <xs:element name="valTypPodania" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="secDanSubjektType">
        <xs:sequence>
            <xs:element name="valFormaDanovehoSubjektu" type="ldt_RadioButton"/>
            <xs:element name="secIdentifCisla" type="secIdentifCislaType" minOccurs="0"/>
            <xs:element name="secDanSubjFO" type="secDanSubjFOType" minOccurs="0"/>
            <xs:element name="secDanSubjPO" type="secDanSubjPOType" minOccurs="0"/>
            <xs:element name="secAdresa" type="secAdresaType" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="secIdentifCislaType">
        <xs:sequence>
            <xs:element name="valIIN_IdentificationNumber" type="ldt_edane_txt20"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="secDanSubjFOType">
        <xs:sequence>
            <xs:element name="secUdajeFO" type="secUdajeFOType" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="secUdajeFOType">
        <xs:sequence>
            <xs:element name="valMenoDanSubjFO" type="ldt_Retazec"/>
            <xs:element name="valPriezvDanSubjFO" type="ldt_Retazec"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="secDanSubjPOType">
        <xs:sequence>
            <xs:element name="valObchMenoDanSubjPO" type="ldt_Retazec"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="secAdresaType">
        <xs:sequence>
            <xs:element name="valUlica" type="ldt_Retazec" minOccurs="0"/>
            <xs:element name="valCisloSup" type="ldt_Retazec" minOccurs="0"/>
            <xs:element name="valCisloOrient" type="ldt_Retazec" minOccurs="0"/>
            <xs:element name="valPsc" type="ldt_PSC" minOccurs="0"/>
            <xs:element name="valObec" type="ldt_Retazec"/>
            <xs:element name="valStat" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="secDruhPrilohyType">
        <xs:sequence>
            <xs:element name="valDruhPrilohy" type="ldt_DruhPrilohy"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="secObsahType">
        <xs:sequence>
            <xs:element name="valTextPodania" type="ldt_TextArea"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="secDokumentyPodaniaType">
        <xs:sequence>
            <xs:element name="secDokumentPodania" type="secDokumentPodaniaType" maxOccurs="999"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="secDokumentPodaniaType">
        <xs:sequence>
            <xs:element name="valPopisDokumentu" type="ldt_Retazec"/>
            <xs:element name="valSposobDoruceniaDokumentu" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="secPrilohyPodaniaType">
        <xs:sequence>
            <xs:element name="secPrilohaPodania" type="secPrilohaPodaniaType" maxOccurs="999"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="secPrilohaPodaniaType">
        <xs:sequence>
            <xs:element name="valPopisPrilohy" type="ldt_Retazec"/>
            <xs:element name="valSposobDoruceniaPrilohy" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="secDatumPodaniaType">
        <xs:sequence>
            <xs:element name="valDatumPodania" type="ldt_Datum"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>
