<?xml version="1.0" encoding="UTF-8" ?>
<!-- SME Oznámenie uplatňovania osobitnej úpravy oslobodenia od dane pre malý podnik/aktualizácia zoznamu členských štátov pre uplatňovanie osobitnej úpravy/oznámenie zmeny údajov/zrušenie uplatňovania osobitnej úpravy 2025 -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
	<xs:annotation>
		<xs:documentation>SME25</xs:documentation>
		<xs:documentation>Oznámenie uplatňovania osobitnej úpravy oslobodenia od dane pre malý podnik/aktualizácia zoznamu členských štátov pre uplatňovanie osobitnej úpravy/oznámenie zmeny údajov/zrušenie uplatňovania osobitnej úpravy 2025</xs:documentation>
	</xs:annotation>
	<!--  prazdny retazec  -->
	<xs:simpleType name="emptyStrType">
		<xs:restriction base="xs:string">
			<xs:enumeration value=""/>
		</xs:restriction>
	</xs:simpleType>
	<!--  povinny datum v tvare: (d)d.(m)m.rrrr  -->
	<xs:simpleType name="oneFieldDateType">
		<xs:restriction base="xs:string">
			<xs:pattern value="\d?\d\.\d?\d\.\d\d\d\d"/>
		</xs:restriction>
	</xs:simpleType>
	<!--  nepovinny datum v tvare: (d)d.(m)m.rrrr  -->
	<xs:simpleType name="optOneFieldDateType">
		<xs:union memberTypes="oneFieldDateType emptyStrType"/>
	</xs:simpleType>
	<!--  nepovinne realne cislo  -->
	<xs:simpleType name="optDouble">
		<xs:union memberTypes="xs:double emptyStrType"/>
	</xs:simpleType>
	<!-- nepovinny checkbox -->
	<xs:simpleType name="only_0_1">
		<xs:restriction base="xs:decimal">
			<xs:totalDigits value="1"/>
			<xs:pattern value="[0-1]"/>
		</xs:restriction>
	</xs:simpleType>
	<!--  retazec na max. 4 znaky  -->
	<xs:simpleType name="string4">
		<xs:restriction base="xs:string">
			<xs:maxLength value="4"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- retazec na max. 5 znakov  -->
	<xs:simpleType name="string5">
		<xs:restriction base="xs:string">
			<xs:maxLength value="5"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- retazec na max. 6 znakov  -->
	<xs:simpleType name="string6">
		<xs:restriction base="xs:string">
			<xs:maxLength value="6"/>
		</xs:restriction>
	</xs:simpleType>
	<!--  retazec na max. 12 znaky  -->
	<xs:simpleType name="string12">
		<xs:restriction base="xs:string">
			<xs:maxLength value="12"/>
		</xs:restriction>
	</xs:simpleType>
	<!--  retazec na max. 25 znakov  -->
	<xs:simpleType name="string25">
		<xs:restriction base="xs:string">
			<xs:maxLength value="25"/>
		</xs:restriction>
	</xs:simpleType>

	<!--  povinne dic  -->
	<xs:simpleType name="dicType">
		<xs:restriction base="xs:decimal">
			<xs:pattern value="\d{10}"/>
		</xs:restriction>
	</xs:simpleType>
	<!--  nepovinne dic  -->
	<xs:simpleType name="optDicType">
		<xs:union memberTypes="dicType emptyStrType"/>
	</xs:simpleType>
	<!--  povinne ico  -->
	<xs:simpleType name="icoType">
		<xs:restriction base="xs:string">
			<xs:pattern value="\d{8}"/>
			<xs:pattern value="\d{12}"/>
		</xs:restriction>
	</xs:simpleType>
	<!--  nepovinne ico  -->
	<xs:simpleType name="optIcoType">
		<xs:union memberTypes="icoType emptyStrType"/>
	</xs:simpleType>
	<!--  nepovinne decimal cislo  -->
	<xs:simpleType name="optDecimal">
		<xs:union memberTypes="xs:decimal emptyStrType"/>
	</xs:simpleType>
	<!--  rodne cislo na 2 casti  -->
	<xs:complexType name="rodneCisloType">
		<xs:sequence>
			<xs:element name="rcPredLom" type="string6"/>
			<xs:element name="rcZaLom" type="string4"/>
		</xs:sequence>
	</xs:complexType>
	<!--  pravna forma -->
	<xs:simpleType name="optPravnaForma">
		<xs:union memberTypes="emptyStrType pravnaFormaKodType"/>
	</xs:simpleType>
	<xs:simpleType name="pravnaFormaKodType">
		<xs:restriction base="xs:int">
			<xs:totalDigits value="3"/>
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="999"/>
			<xs:pattern value="[0-9][0-9][0-9]"/>
		</xs:restriction>
	</xs:simpleType>

	<!--  korenovy element  -->
	<xs:element name="dokument">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="hlavicka" type="hlavickaType"/>
				<xs:element name="identifikacneUdaje" type="identifikacneUdajeType"/>
				<xs:element name="kontaktneUdaje" type="kontaktneUdajeType"/>
				<xs:element name="clenskeStatyUplatnovanie" type="clenskeStatyType"/>
				<xs:element name="clenskeStatyUkoncenie" 	type="clenskeStatyType"/>
				<xs:element name="hodnotaTovarovSluziebStaty" type="hodnotaTovarovSluziebStatyType"/>
				<xs:element name="hodnotaTovarovSluziebEu" type="hodnotaTovarovSluziebEuType"/>
				<xs:element name="predIcEx" type="predIcExType"/>
				<xs:element name="zrusenie" type="zrusenieType"/>
				<xs:element name="vyhlasenie" type="vyhlasenieType"/>				
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!--  hlavicka  -->
	<xs:complexType name="hlavickaType">
		<xs:sequence>
			<xs:element name="zacatie" type="only_0_1">
				<xs:annotation>
					<xs:documentation>Oznámenie o začatí uplatňovania osobitnej úpravy</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="aktualizacia" type="only_0_1">
				<xs:annotation>
					<xs:documentation>Aktualizácia zoznamu členských štátov pre uplatňovanie osobitnej úpravy</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="zmena" type="only_0_1">
				<xs:annotation>
					<xs:documentation>Oznámenie zmeny údajov</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="zrusenie" type="only_0_1">
				<xs:annotation>
					<xs:documentation>Žiadosť o zrušenie uplatňovania osobitnej úpravy</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="fo" type="only_0_1">
				<xs:annotation>
					<xs:documentation>Fyzická osoba</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="po" type="only_0_1">
				<xs:annotation>
					<xs:documentation>Právnická osoba</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<!--  identifikacne udaje  -->
	<xs:complexType name="identifikacneUdajeType">
		<xs:annotation>
			<xs:documentation>Identifikačné údaje</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="ex" type="string25"/>
			<xs:element name="icdph" type="string12"/>
			<xs:element name="dic" type="optDicType"/>
			<xs:element name="dicIcdphCisla" type="dicIcdphCislaType"/>
			<xs:element name="titulPred" type="xs:string"/>
			<xs:element name="meno" type="xs:string"/>
			<xs:element name="priezvisko" type="xs:string"/>
			<xs:element name="titulZa" type="xs:string"/>
			<xs:element name="rodneCislo" type="rodneCisloType"/>			
			<xs:element name="datumNarodenia" type="optOneFieldDateType"/>
			<xs:element name="obchodneMeno" type="xs:string"/>
			<xs:element name="ico" type="optIcoType"/>
			<xs:element name="predmetPodnikania" type="string5"/>
			<xs:element name="pravnaForma" type="optPravnaForma"/>
			<xs:element name="ano" type="only_0_1"/>
			<xs:element name="nie" type="only_0_1"/>
			<xs:element name="ic" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="dicIcdphCislaType">
		<xs:annotation>
			<xs:documentation>DIČ alebo IČ DPH pridelené v ostatných členských štátoch </xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="dicIcdph" type="xs:string" minOccurs="0" maxOccurs="30"/>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="kontaktneUdajeType">
		<xs:annotation>
			<xs:documentation>Kontaktné údaje</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="adresaSidla" type="adresaSidlaType"/>
			<xs:element name="adresaMiestaPodnikania" type="adresaMiestaPodnikaniaType"/>
			<xs:element name="telefon" type="xs:string"/>
			<xs:element name="email" type="xs:string"/>
			<xs:element name="web" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	
	<xs:complexType name="adresaSidlaType">
		<xs:annotation>
			<xs:documentation>Adresa trvalého pobytu alebo sídla</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="ulica" type="xs:string"/>
			<xs:element name="supisneCislo" type="xs:string"/>
			<xs:element name="orientacneCislo" type="xs:string"/>
			<xs:element name="psc" type="xs:string"/>
			<xs:element name="obec" type="xs:string"/>
			<xs:element name="stat" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	
	<xs:complexType name="adresaMiestaPodnikaniaType">
		<xs:annotation>
			<xs:documentation>Adresa miesta podnikania na území Slovenskej republiky</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="ulica" type="xs:string"/>
			<xs:element name="supisneCislo" type="xs:string"/>
			<xs:element name="orientacneCislo" type="xs:string"/>
			<xs:element name="psc" type="xs:string"/>
			<xs:element name="obec" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="clenskeStatyType">
		<xs:annotation>
			<xs:documentation>Zoznam členských štátov pre uplatňovanie/ukončenie uplatňovania osobitnej úpravy</xs:documentation>
		</xs:annotation>		
		<xs:sequence>
			<xs:element name="stat" type="xs:string" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	
	<xs:complexType name="hodnotaTovarovSluziebStatyType">
		<xs:annotation>
			<xs:documentation>Celková hodnota bez dane tovarov a služieb v eurách dodaných zdaniteľnou osobou na území Európskej únie v členení podľa jednotlivých členských štátov</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="hodnotaTovarovSluziebStatyZoznam" type="hodnotaTovarovSluziebStatyZoznamType" maxOccurs="unbounded"/>
			<xs:element name="kalendarnyRok" type="string4"/>
			<xs:element name="potvrdzujemPrebiehajuci" type="only_0_1"/>
			<xs:element name="potvrdzujemPredchadzajuci" type="only_0_1"/>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="hodnotaTovarovSluziebStatyZoznamType">
		<xs:sequence>
			<xs:element name="stat" type="xs:string"/>
			<xs:element name="sektor" type="xs:string"/> 
			<xs:element name="kodSektoru" type="xs:string"/>
			<xs:element name="sumaAktualnyRok" type="optDecimal"/>
			<xs:element name="sumaPredRok" type="optDecimal"/>
			<xs:element name="sumaPredPredRok" type="optDecimal"/>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="hodnotaTovarovSluziebEuType">
		<xs:annotation>
			<xs:documentation>Celková hodnota bez dane tovarov a služieb v eurách dodaných zdaniteľnou osobou na území Európskej únie</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="sumaAktualnyRok" type="optDecimal"/>
			<xs:element name="sumaPredRok" type="optDecimal"/>
			<xs:element name="ano" type="only_0_1"/>
			<xs:element name="nie" type="only_0_1"/>
			
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="predIcExType">
		<xs:annotation>
			<xs:documentation>Predchádzajúce pridelené individuálne identifikačné číslo s príponou EX v inom členskom štáte</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="ano" type="only_0_1"/>
			<xs:element name="nie" type="only_0_1"/>
			<xs:element name="predIcExZoznam" type="predIcExZoznamType"/>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="predIcExZoznamType">
		<xs:sequence>
			<xs:element name="ex" type="xs:string" minOccurs="0" maxOccurs="5"/>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="zrusenieType">
		<xs:annotation>
			<xs:documentation>Zrušenie uplatňovania osobitnej úpravy pre malý podnik vo všetkých členských štátoch</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="ukoncenieDobrovolne" type="only_0_1"/>
			<xs:element name="ukonceniePodnikania" type="only_0_1"/>
			<xs:element name="ukonceniePodnikaniaDatum" type="optOneFieldDateType"/>
			<xs:element name="zmenaStatu" type="only_0_1"/>
			<xs:element name="novyStat" type="xs:string"/>
			<xs:element name="zmenaStatuDatum" type="optOneFieldDateType"/>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="vyhlasenieType">
		<xs:annotation>
			<xs:documentation>Vyhlasujem, že údaje uvedené v oznámení sú správne a úplné</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="datum" type="optOneFieldDateType"/>
		</xs:sequence>
	</xs:complexType>


</xs:schema>