<?xml version="1.0" encoding="UTF-8"?>
<!-- Vseobecne podanie pre FS - sprava dani, ver.2020 -->
<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{6,12}" />
		</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:pattern value="|.{0,64}@.{1,250}\..{2,4}" />
		</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>
	
	<!-- VOES_Number -->
	<xs:simpleType name="ldt_VOES_Number">
		<xs:restriction base="xs:string">
			<xs:pattern value="|EU\d{9}" />
			<xs:maxLength value="11" />
		</xs:restriction>
	</xs:simpleType>
	
	<!-- IOSS_VAT_IdentificationNumber -->
	<xs:simpleType name="ldt_IOSS_VAT_IdentificationNumber">
		<xs:restriction base="xs:string">
			<xs:pattern value="|IM\d{10}" />
			<xs:maxLength value="12" />
		</xs:restriction>
	</xs:simpleType>
	
	<!-- IntermediaryNumber -->
	<xs:simpleType name="ldt_IntermediaryNumber">
		<xs:restriction base="xs:string">
			<xs:pattern value="|IN\d{10}" />
			<xs:maxLength value="12" />
		</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: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="valOssUprava" 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="secIdentifCisla" minOccurs="0">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="VAT_IdentificationNumber" type="ldt_Retazec" minOccurs="0"/>
										<xs:element name="VOES_Number" type="ldt_VOES_Number" minOccurs="0"/>
										<xs:element name="IOSS_VAT_IdentificationNumber" type="ldt_IOSS_VAT_IdentificationNumber" minOccurs="0"/>
										<xs:element name="IntermediaryNumber" type="ldt_IntermediaryNumber" minOccurs="0"/>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="secDanSubjFO" minOccurs="0">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="secUdajeFO" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="valMenoDanSubjFO" type="ldt_Retazec" minOccurs="1"/>
													<xs:element name="valPriezvDanSubjFO" type="ldt_Retazec" minOccurs="1"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
										<xs:element name="secAdresaFO" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="valUlicaFO" type="ldt_Retazec" minOccurs="0" nillable="true"/>
													<xs:element name="valCisloSupFO" type="ldt_Retazec" minOccurs="0"/>
													<xs:element name="valCisloOrientFO" type="ldt_Retazec" minOccurs="0"/>
													<xs:element name="valPscFO" type="ldt_PSC" minOccurs="0"/>
													<xs:element name="valObecFO" type="ldt_Retazec" minOccurs="1"/>
													<xs:element name="valStatFO" type="ldt_Retazec" minOccurs="0"/>
												</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="valObchMenoDanSubjPO" type="ldt_Retazec" minOccurs="1"/>
										<xs:element name="secAdresaPO" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="valUlicaPO" type="ldt_Retazec" minOccurs="0" nillable="true"/>
													<xs:element name="valCisloSupPO" type="ldt_Retazec" minOccurs="0"/>
													<xs:element name="valCisloOrientPO" type="ldt_Retazec" minOccurs="0"/>
													<xs:element name="valPscPO" type="ldt_PSC" minOccurs="0"/>
													<xs:element name="valObecPO" type="ldt_Retazec" minOccurs="1"/>
													<xs:element name="valStatPO" type="ldt_Retazec" minOccurs="0"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</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>