<?xml version="1.0" encoding="UTF-8"?>
<!-- Vseobecne podanie pre FS - sprava dani, ver.2024 -->
<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<!-- 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>

	<!-- ICO -->
	<xs:simpleType name="ldt_ICO">
		<xs:restriction base="xs:string">
			<xs:pattern value="\d{8}|\d{12}"></xs:pattern>
		</xs:restriction>
	</xs:simpleType>

	<!-- DIC -->
	<xs:simpleType name="ldt_DIC">
		<xs:restriction base="xs:string">
			<xs:pattern value="|\d{10}" />
			<xs:maxLength value="10" />
		</xs:restriction>
	</xs:simpleType>

	<!-- RodneCislo - s lomitkom, bez lomitka -->
	<xs:simpleType name="ldt_RodneCislo">
		<xs:restriction base="xs:string">
			<xs:pattern value="|\d{6}\/\d{3,4}|\d{9,10}" />
			<xs:maxLength value="11" />
		</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>

	<!-- Telefonne cislo -->
	<xs:simpleType name="ldt_Telefon">
		<xs:restriction base="xs:string">
			<xs:pattern value="|0\d{9}|0\d{10}|0\d{11}|0\d{12}|0\d{13}" />
			<xs:maxLength value="14" />
		</xs:restriction>
	</xs:simpleType>

	<!-- Email -->
	<xs:simpleType name="ldt_Email">
		<xs:restriction base="xs:string">
			<xs:maxLength value="254" />
		</xs:restriction>
	</xs:simpleType>

	<!-- Cislo domu -->
	<xs:simpleType name="ldt_CisloDomu">
		<xs:restriction base="xs:string">
			<xs:maxLength value="8" />
		</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>
	
	<!-- Checkbox -->
	<xs:simpleType name="LDT_Checkbox">
		<xs:restriction base="xs:boolean">
		</xs:restriction>
	</xs:simpleType>


	<xs:element name="dokument">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="secNazov" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="valNazov" type="ldt_Retazec" minOccurs="0" nillable="true"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="secEvidencneCisloSuvisiacehoDOkumentu" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="valEvidencneCisloSuvisiacehoDokumentu" type="ldt_EvCisloSuvDok" minOccurs="0" nillable="true"/>
							<xs:element name="valECSDRok" type="ldt_Rok" minOccurs="0" nillable="true"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="secAdresovanieVP" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="valOrganFS" type="ldt_Retazec" minOccurs="1"/>
							<xs:element name="secAdresatDU" minOccurs="0">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="valDanovyUrad" type="ldt_Retazec" minOccurs="1"/>
										<xs:element name="valPracoviskoDU" type="ldt_Retazec" minOccurs="0" nillable="true"/>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="secOblastPodania" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="valOblastPodania" type="ldt_Retazec" minOccurs="1"/>
							<xs:element name="valAgenda" type="ldt_Retazec" minOccurs="1"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="secTypPodania" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="valTypSluzby1" type="ldt_Retazec" minOccurs="1"/>
							<xs:element name="valTypPodania" type="ldt_Retazec" minOccurs="1"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="secDanSubjekt" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="valFormaDanovehoSubjektu" type="ldt_RadioButton" minOccurs="1">
								<xs:annotation>
									<xs:documentation>Hodnoty 0-Fyzická osoba, 1-Právnicka osoba</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="valDicDanSubj" type="ldt_DIC" minOccurs="0" nillable="true"/>
							<xs:element name="secDanSubjFO" minOccurs="0">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="valIcoFO" type="ldt_ICO" minOccurs="0" nillable="true"/>
										<xs:element name="valObchMenoDanSubjFO" type="ldt_Retazec" minOccurs="0" nillable="true"/>
										<xs:element name="secDoplUdajeFO" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="valTitulPredDanSubjFO" type="ldt_Retazec" minOccurs="0" nillable="true"/>
													<xs:element name="valMenoDanSubjFO" type="ldt_Retazec" minOccurs="1"/>
													<xs:element name="valPriezvDanSubjFO" type="ldt_Retazec" minOccurs="1"/>
													<xs:element name="valTitulZaDanSubjFO" type="ldt_Retazec" minOccurs="0" nillable="true"/>
													<xs:element name="valRodneCisloDanSubjFO" type="ldt_RodneCislo" minOccurs="0" nillable="true"/>
													<xs:element name="valDatumNarodeniaDanSubjFO" type="ldt_Datum" minOccurs="0" nillable="true"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="secDanSubjPO" minOccurs="0">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="valIcoPO" type="ldt_ICO" minOccurs="0" nillable="true"/>
										<xs:element name="valObchMenoDanSubjPO" type="ldt_Retazec" minOccurs="1"/>
										<xs:element name="secDoplUdajePO" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="valPravnaFormaDanSubjPO" type="ldt_Retazec" minOccurs="0" nillable="true"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="secSidlo" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="valUlica" type="ldt_Retazec" minOccurs="0" nillable="true"/>
							<xs:element name="valCislo" type="ldt_CisloDomu" minOccurs="1"/>
							<xs:element name="valPsc" type="ldt_PSC" minOccurs="1"/>
							<xs:element name="valObec" type="ldt_Retazec" minOccurs="1"/>
							<xs:element name="valStat" type="ldt_Retazec" minOccurs="1"/>
							<xs:element name="valTelefon" type="ldt_Telefon" minOccurs="0" nillable="true"/>
							<xs:element name="valEmail" type="ldt_Email" minOccurs="0" nillable="true"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="secUdajeSpoplatnenePodanie" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="ID_sluzby" type="ldt_Retazec" minOccurs="0"/>
							<xs:element name="valSadzobnikPoplatkov" type="ldt_Retazec" minOccurs="1"/>
							<xs:element name="valNazovSluzby" type="ldt_Retazec" minOccurs="1"/>
							<xs:element name="secPomocna" minOccurs="0">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="valVystupSluzby" type="ldt_Retazec" minOccurs="0" nillable="true"/>
										<xs:element name="valJednokovaCena" type="ldt_Retazec" minOccurs="0" nillable="true"/>
										<xs:element name="secPomocna2" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="valOslobodenie" type="LDT_Checkbox" minOccurs="0" nillable="true"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="valDovodOslobodenia" type="ldt_Retazec" minOccurs="0" nillable="true"/>
							<xs:element name="secSchrankaAP" minOccurs="0">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="schrankaAP" type="ldt_Retazec" minOccurs="0" nillable="true"/>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="secSchrankaSubjektu" minOccurs="0">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="schrankaSubjektu" type="ldt_Retazec" minOccurs="0" nillable="true"/>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="secDruhPrilohy" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="valDruhPrilohy" type="ldt_DruhPrilohy" minOccurs="1">
								<xs:annotation>
									<xs:documentation>Hodnoty 0-Súčasťou podania nie je príloha, 1-Podanie je tvorené súborom dokumentov, 2-Súčasťou podania je príloha</xs:documentation>
								</xs:annotation>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="secObsah" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="valTextPodania" type="ldt_TextArea" minOccurs="1"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="secDokumentyPodania" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="secDokumentPodania" minOccurs="1" maxOccurs="999">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="valPopisDokumentu" type="ldt_Retazec" minOccurs="1"/>
										<xs:element name="valSposobDoruceniaDokumentu" type="ldt_Retazec" minOccurs="1"/>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="secPrilohyPodania" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="secPrilohaPodania" minOccurs="1" maxOccurs="999">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="valPopisPrilohy" type="ldt_Retazec" minOccurs="1"/>
										<xs:element name="valSposobDoruceniaPrilohy" type="ldt_Retazec" minOccurs="1"/>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="secDatumPodania" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="valDatumPodania" type="ldt_Datum" minOccurs="1"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>