﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://schemas.cssz.cz/VPO/2023" xmlns="http://schemas.cssz.cz/VPO/2023"
  xmlns:bt="http://schemas.cssz.cz/baseTypes/v2" xmlns:xs="http://www.w3.org/2001/XMLSchema"
  elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">

  <xs:import schemaLocation="baseTypes2.xsd" namespace="http://schemas.cssz.cz/baseTypes/v2"/>

  <!-- základní typy string omezené délkou -->
  <xs:simpleType name="Nazev10Type">
    <xs:restriction base="bt:simpleL2Type">
      <xs:minLength value="1"/>
      <xs:maxLength value="10"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Nazev25Type">
    <xs:restriction base="bt:simpleL2Type">
      <xs:minLength value="1"/>
      <xs:maxLength value="25"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Nazev30Type">
    <xs:restriction base="bt:simpleL2Type">
      <xs:minLength value="1"/>
      <xs:maxLength value="30"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Nazev50Type">
    <xs:restriction base="bt:simpleL2Type">
      <xs:minLength value="1"/>
      <xs:maxLength value="50"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Nazev65Type">
    <xs:restriction base="bt:simpleL2Type">
      <xs:minLength value="1"/>
      <xs:maxLength value="65"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Nazev155Type">
    <xs:restriction base="bt:simpleL2Type">
      <xs:minLength value="1"/>
      <xs:maxLength value="155"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Nazev700Type">
    <xs:restriction base="bt:simpleL2Type">
      <xs:minLength value="1"/>
      <xs:maxLength value="700"/>
    </xs:restriction>
  </xs:simpleType>

  <!-- základní celočíselné typy -->
  <xs:simpleType name="Cislo3Type">
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="999"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Cislo7Type">
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="9999999"/>
    </xs:restriction>
  </xs:simpleType>

  <!-- různé sdílené typy -->
  <xs:simpleType name="JazykKodAlpha2Type">
    <xs:restriction base="xs:string">
      <xs:length value="2"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="PodavajiciSubjektZamType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Zamestnavatel"/>
      <xs:enumeration value="Zamestnanec"/>
      <xs:enumeration value="Zmocnenec"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="PodavajiciSubjektOsvcType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Osvc"/>
      <xs:enumeration value="Zmocnenec"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="KodOsszType">
    <xs:restriction base="bt:simpleNType">
      <xs:minInclusive value="100"/>
      <xs:maxInclusive value="999"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ZdravotniPojistovnaType">
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{3}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="PohlaviType">
    <xs:annotation>
      <xs:documentation>Řetězec, délka 1 znak, povoluje pouze znaky '0' (neznámé) nebo 'M' (muž) nebo 'Z' (žena).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="0"/>
      <xs:enumeration value="M"/>
      <xs:enumeration value="Z"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="RodneCisloType">
    <xs:restriction base="bt:simpleNNType">
      <xs:minLength value="9"/>
      <xs:maxLength value="10"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="StatType">
    <xs:restriction base="bt:simpleAType">
      <xs:length value="2"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ZadostType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Vyslani">
        <xs:annotation>
          <xs:documentation>
            Vyslání
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Soubeh">
        <xs:annotation>
          <xs:documentation>
            Souběh
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Vyjimka">
        <xs:annotation>
          <xs:documentation>
            Výjimka
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Jina">
        <xs:annotation>
          <xs:documentation>
            Jiná situace
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TypDruhuZamestnaniType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="01">
        <xs:annotation>
          <xs:documentation>
            01 = pracovní poměr
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="02">
        <xs:annotation>
          <xs:documentation>
            02 = dohoda o pracovní činnosti
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="03">
        <xs:annotation>
          <xs:documentation>
            03 = dohoda o provedení práce
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="04">
        <xs:annotation>
          <xs:documentation>
            04 = jednatel/společník s.r.o.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="05">
        <xs:annotation>
          <xs:documentation>
            05 = člen kolektivního orgánu právnické osoby
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="98">
        <xs:annotation>
          <xs:documentation>
            98 = jiný
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TypPracovnihoVztahuType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="01">
        <xs:annotation>
          <xs:documentation>
            01 = bude pracovní vztah v ČR ukončen
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="02">
        <xs:annotation>
          <xs:documentation>
            02 = pracovní vztah v ČR nadále trvá
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="03">
        <xs:annotation>
          <xs:documentation>
            03 = se v ČR sjednává neplacené volno
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="RizeniCinnostiType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="01">
        <xs:annotation>
          <xs:documentation>
            01 = zaměstnavatelem v ČR
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="02">
        <xs:annotation>
          <xs:documentation>
            02 = zahraničním podnikem
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="03">
        <xs:annotation>
          <xs:documentation>
            03 = oběma předchozími
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TypCinnostiVCrType">
    <xs:annotation>
      <xs:documentation>
        Činnost žadatele v ČR během výkonu činnosti v zahraničí.
      </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="01">
        <xs:annotation>
          <xs:documentation>
            01 = bude ukončena
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="02">
        <xs:annotation>
          <xs:documentation>
            02 = bude nadále souběžně nebo střídavě vykonávána
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="03">
        <xs:annotation>
          <xs:documentation>
            03 = nebude vykonávána, po návratu do ČR bude opět pokračovat
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="IcoCrType">
    <xs:annotation>
      <xs:documentation>Identifikační číslo právnické osoby, podnikající fyzické osoby nebo organizační složky státu.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="bt:simpleNNType">
      <xs:pattern value="\d{8}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="DicCrType">
    <xs:annotation>
      <xs:documentation>Daňové identifikační číslo.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:maxLength value="10"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VariabilniSymbolCrType">
    <xs:annotation>
      <xs:documentation>Řetězec, 8 až 10 číslic,může být zleva doplněno 0.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="bt:simpleNNType">
      <xs:pattern value="\d{8,10}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ObdobiType">
    <xs:sequence>
      <xs:element name="od" type="xs:date"/>
      <xs:element name="do" type="xs:date"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ObdobiOtevreneType">
    <xs:sequence>
      <xs:element name="od" type="xs:date" minOccurs="0"/>
      <xs:element name="do" type="xs:date" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ObdobiNeurciteType">
    <xs:sequence>
      <xs:element name="od" type="xs:date"/>
      <xs:element name="do" type="xs:date" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PojisteniType">
    <xs:sequence>
      <xs:element name="nemocenske" type="xs:boolean" minOccurs="0"/>
      <xs:element name="nemocenskeOd" type="xs:date" minOccurs="0"/>
      <xs:element name="duchodove" type="xs:boolean" minOccurs="0"/>
      <xs:element name="duchodoveOd" type="xs:date" minOccurs="0"/>
      <xs:element name="zdravotni" type="xs:boolean" minOccurs="0"/>
      <xs:element name="zdravotniOd" type="xs:date" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="JmenoPrijmeniType">
    <xs:restriction base="bt:simpleA_ZX_SP_Type">
      <xs:maxLength value="155"/>
      <xs:minLength value="1"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="AdresaCrType">
    <xs:sequence>
      <xs:element name="budova" type="Nazev155Type" minOccurs="0"/>
      <xs:element name="ulice" type="Nazev155Type" minOccurs="0"/>
      <xs:element name="cisloPopisne" type="CisloPopisneType" minOccurs="0"/>
      <xs:element name="obec" type="Nazev65Type"/>
      <xs:element name="region" type="Nazev65Type" minOccurs="0"/>
      <xs:element name="psc" type="PscCrType" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="AdresaZahranicniType">
    <xs:sequence>
      <xs:element name="budova" type="Nazev155Type" minOccurs="0"/>
      <xs:element name="ulice" type="Nazev155Type" minOccurs="0"/>
      <xs:element name="cisloPopisne" type="CisloPopisneType" minOccurs="0"/>
      <xs:element name="obec" type="Nazev65Type" minOccurs="0"/>
      <xs:element name="region" type="Nazev65Type" minOccurs="0"/>
      <xs:element name="psc" type="PscZahranicniType" minOccurs="0"/>
      <xs:element name="stat" type="StatType"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="CisloPopisneType">
    <xs:restriction base="bt:simpleA_NN_ZZType">
      <xs:minLength value="1"/>
      <xs:maxLength value="10"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="PscCrType">
    <xs:restriction base="xs:string">
      <xs:pattern value="\d{5}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="PscZahranicniType">
    <xs:restriction base="bt:simpleA_NN_ZZType">
      <xs:minLength value="1"/>
      <xs:maxLength value="11"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="DatovaSchrankaType">
    <xs:restriction base="xs:string">
      <xs:length value="7"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="EmailType">
    <xs:restriction base="xs:string">
      <xs:maxLength value="60"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TelCisloType">
    <xs:restriction base="xs:string">
      <xs:maxLength value="33"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="KontaktType">
    <xs:sequence>
      <xs:element name="telefon" type="TelCisloType" minOccurs="0"/>
      <xs:element name="datovaSchranka" type="DatovaSchrankaType" minOccurs="0"/>
      <xs:element name="email" type="EmailType" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ZamestnavatelKontaktType">
    <xs:complexContent>
      <xs:extension base="KontaktType">
        <xs:sequence>
          <xs:element name="kontaktniOsoba" type="JmenoPrijmeniType" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="MistoVykonuCrType">
    <xs:sequence>
      <xs:element name="nazev" type="Nazev155Type"/>
      <xs:element name="adresa" type="AdresaCrType"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="MistoVykonuZahraniciType">
    <xs:sequence>
      <xs:element name="nazev" type="Nazev155Type" minOccurs="0"/>
      <xs:element name="nemaStalouAdresu" type="xs:boolean" minOccurs="0"/>
      <xs:element name="adresa" type="AdresaZahranicniType" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <!-- groups -->
  <xs:group name="StatusZadateleZamGroup">
    <xs:sequence>
      <xs:element name="status" type="StatusZadateleZamType"/>
      <xs:element name="plavidlo" type="PlavidloType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Vyplnuje se pokud je status zadatele Namornik.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="letiste" type="LetisteType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Vyplnuje se pokud je status zadatele LetovyPersonal.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:simpleType name="StatusZadateleZamType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Zamestnanec"/>
      <xs:enumeration value="StatniUrednik"/>
      <xs:enumeration value="MezinarodniPreprava"/>
      <xs:enumeration value="ZamestnanecEs"/>
      <xs:enumeration value="Namornik"/>
      <xs:enumeration value="LetovyPersonal"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:group name="StatusZadateleOsvcGroup">
    <xs:sequence>
      <xs:element name="status" type="StatusZadateleOsvcType"/>
      <xs:element name="namornik" type="PlavidloType" minOccurs="0"/>
      <xs:element name="letovyPersonal" type="LetisteType" minOccurs="0"/>
    </xs:sequence>
  </xs:group>
  <xs:simpleType name="StatusZadateleOsvcType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Osvc"/>
      <xs:enumeration value="Namornik"/>
      <xs:enumeration value="LetovyPersonal"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="PlavidloType">
    <xs:sequence>
      <xs:element name="nazev" type="Nazev155Type"/>
      <xs:element name="stat" type="StatType"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="LetisteType">
    <xs:sequence>
      <xs:element name="nazev" type="Nazev155Type"/>
      <xs:element name="mesto" type="Nazev65Type"/>
      <xs:element name="stat" type="StatType"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Základní údaje o ePodání (hlavička) -->
  <xs:complexType name="HlavickaType">
    <xs:sequence>
      <xs:element name="kodOssz" type="KodOsszType"/>
      <xs:element name="od" type="xs:date"/>
      <xs:element name="do" type="xs:date"/>
      <xs:element name="eu" type="xs:boolean"/>
      <xs:element name="statMezinarodniSmlouvy" type="xs:boolean"/>
      <xs:element name="typZadosti" type="ZadostType"/>
      <xs:element name="jazyk" type="JazykKodAlpha2Type" minOccurs="0"/>
      <xs:element name="emailProNotifikace" type="EmailType" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Základní identifikace žadatele -->
  <xs:complexType name="ZadatelType">
    <xs:sequence>
      <xs:element name="osobniUdaje" type="ZadatelOsobniType"/>
      <xs:element name="adresaBydliste" type="AdresaZahranicniType"/>
      <xs:element name="adresaKontaktni" type="AdresaZahranicniType" minOccurs="0"/>
      <xs:element name="adresaPobytu" type="AdresaZahranicniType" minOccurs="0"/>
      <xs:element name="kontakt" type="KontaktType" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ZadatelOsobniType">
    <xs:sequence>
      <xs:element name="prijmeni" type="JmenoPrijmeniType"/>
      <xs:element name="jmeno" type="JmenoPrijmeniType"/>
      <xs:element name="titul" type="Nazev30Type" minOccurs="0"/>
      <xs:element name="rodneCislo" type="RodneCisloType" minOccurs="0"/>
      <xs:element name="rodnePrijmeni" type="JmenoPrijmeniType" minOccurs="0"/>
      <xs:element name="drivejsiPrijmeni" type="JmenoPrijmeniType" minOccurs="0"/>
      <xs:element name="rodneJmeno" type="JmenoPrijmeniType" minOccurs="0"/>
      <xs:element name="statniPrislusnosti">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="stat" type="StatType" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="datumNarozeni" type="xs:date"/>
      <xs:element name="pohlavi" type="PohlaviType" minOccurs="0"/>
      <xs:element name="mistoNarozeni" type="Nazev65Type" minOccurs="0"/>
      <xs:element name="regionNarozeni" type="Nazev65Type" minOccurs="0"/>
      <xs:element name="statNarozeni" type="StatType" minOccurs="0"/>
      <xs:element name="zdravotniPojistovnaCr" type="ZdravotniPojistovnaType" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Státy výdělečné činnosti -->
  <xs:complexType name="StatyVydelecneCinnostiType">
    <xs:sequence>
      <xs:element name="stat" type="StatType" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Údaje o zaměstnavateli v ČR -->
  <xs:complexType name="ZamestnavateleCrType">
    <xs:sequence>
      <xs:element name="zamestnavatelCr" type="ZamestnavatelCrType" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ZamestnavatelCrType">
    <xs:sequence>
      <xs:element name="podavajici" type="xs:boolean" minOccurs="0"/>
      <xs:element name="nazev" type="Nazev155Type"/>
      <xs:element name="ico" type="IcoCrType"/>
      <xs:element name="dic" type="DicCrType" minOccurs="0"/>
      <xs:element name="vs" type="VariabilniSymbolCrType" minOccurs="0"/>
      <xs:element name="vsNepridelen" type="xs:boolean" minOccurs="0"/>
      <xs:element name="adresa" type="AdresaCrType"/>
      <xs:element name="kontakt" type="ZamestnavatelKontaktType" minOccurs="0"/>
      <xs:element name="dobaTrvani" type="ObdobiNeurciteType"/>
      <xs:element name="agentura" type="xs:boolean" minOccurs="0"/>
      <xs:element name="ekonomickaCinnost" type="xs:boolean" minOccurs="0"/>
      <xs:element name="zamestnancuCelkem" type="Cislo7Type" minOccurs="0"/>
      <xs:element name="zamestnancuZahranici" type="Cislo7Type" minOccurs="0"/>
      <xs:element name="druhZamestnani" type="TypDruhuZamestnaniType" minOccurs="0"/>
      <xs:element name="druhZamestnaniJiny" type="Nazev155Type" minOccurs="0"/>
      <xs:element name="pracovniVztahCr" type="TypPracovnihoVztahuType" minOccurs="0"/>
      <xs:element name="pojisteni" type="PojisteniType" minOccurs="0"/>
      <xs:element name="predpisyMesicPred" type="xs:boolean" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Údaje o výkonu činnosti zaměstnance v ČR -->
  <xs:complexType name="CinnostiCrType">
    <xs:sequence>
      <xs:element name="cinnostCr" type="CinnostCrType" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="CinnostCrType">
    <xs:sequence>
      <xs:element name="mistoVykonu" type="MistoVykonuCrType" minOccurs="0"/>
      <xs:element name="dobaTrvani" type="ObdobiNeurciteType"/>
      <xs:group ref="StatusZadateleZamGroup"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Údaje o zaměstnavateli v zahraničí -->
  <xs:complexType name="ZamestnavateleZahraniciType">
    <xs:sequence>
      <xs:element name="zamestnavatelZahranici" type="ZamestnavatelZahraniciType" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ZamestnavatelZahraniciType">
    <xs:sequence>
      <xs:element name="podavajici" type="xs:boolean" minOccurs="0"/>
      <xs:element name="nazev" type="Nazev155Type"/>
      <xs:element name="ico" type="Nazev25Type" minOccurs="0"/>
      <xs:element name="dic" type="Nazev25Type" minOccurs="0"/>
      <xs:element name="vs" type="Nazev25Type" minOccurs="0"/>
      <xs:element name="vsNepridelen" type="xs:boolean" minOccurs="0"/>
      <xs:element name="adresa" type="AdresaZahranicniType"/>
      <xs:element name="kontakt" type="ZamestnavatelKontaktType" minOccurs="0"/>
      <xs:element name="dobaTrvani" type="ObdobiNeurciteType"/>
      <xs:element name="organizacniSlozkaCr" type="xs:boolean" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Zaměstnavatel je dceřinou společností nebo pobočkou zaměstnavatele v ČR</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="druhZamestnani" type="TypDruhuZamestnaniType" minOccurs="0"/>
      <xs:element name="druhZamestnaniJiny" type="Nazev155Type" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Údaje o výkonu činnosti zaměstnance v zahraničí -->
  <xs:complexType name="CinnostiZahraniciType">
    <xs:sequence>
      <xs:element name="cinnostZahranici" type="CinnostZahraniciType" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="CinnostZahraniciType">
    <xs:sequence>
      <xs:element name="mistoVykonu" type="MistoVykonuZahraniciType" minOccurs="0"/>
      <xs:element name="dobaTrvani" type="ObdobiNeurciteType"/>
      <xs:group ref="StatusZadateleZamGroup"/>
      <xs:element name="cinnostZahranicnihoZamestnavatele" type="xs:boolean" minOccurs="0"/>
      <xs:element name="pracovnepravniVztah" type="xs:boolean" minOccurs="0"/>
      <xs:element name="nahrazeniPracovnika" type="xs:boolean" minOccurs="0"/>
      <xs:element name="cinnostRizena" type="RizeniCinnostiType" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Poměry výkonu činnosti zaměstnance -->
  <xs:complexType name="PomeryVykonuCinnostiZamType">
    <xs:sequence>
      <xs:element name="pomeryCinnosti" type="PomeryCinnostiType" minOccurs="0"/>
      <xs:element name="okrajovaCinnost" type="xs:boolean" minOccurs="0"/>
      <xs:element name="okrajovaCinnostStaty" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="stat" type="StatType" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PomeryCinnostiType">
    <xs:sequence>
      <xs:element name="pomerCinnosti" type="PomerCinnostiType" maxOccurs="4"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PomerCinnostiType">
    <xs:sequence>
      <xs:element name="doba" type="Cislo3Type"/>
      <xs:element name="odmena" type="Cislo3Type"/>
      <xs:element name="stat" type="StatType"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Údaje o předchozí činnosti v zahraničí -->
  <xs:complexType name="UdajeOPredchoziCinnostiType">
    <xs:sequence>
      <xs:element name="mistoVykonu" type="MistoVykonuPredchoziCinnostType"/>
      <xs:element name="dobaTrvani" type="ObdobiType"/>
      <xs:element name="status" type="StatusPredchoziCinnostType"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="MistoVykonuPredchoziCinnostType">
    <xs:sequence>
      <xs:element name="nazev" type="Nazev155Type" minOccurs="0"/>
      <xs:element name="adresa" type="AdresaZahranicniType"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="StatusPredchoziCinnostType">
    <xs:sequence>
      <xs:element name="zamestnanec" type="xs:boolean" minOccurs="0"/>
      <xs:element name="osvc" type="xs:boolean" minOccurs="0"/>
      <xs:element name="statniUrednik" type="xs:boolean" minOccurs="0"/>
      <xs:element name="zamestnanecEs" type="xs:boolean" minOccurs="0"/>
      <xs:element name="namornik" type="xs:boolean" minOccurs="0"/>
      <xs:element name="letovyPersonal" type="xs:boolean" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Údaje o OSVČ v ČR -->
  <xs:complexType name="OsvcCrType">
    <xs:sequence>
      <xs:element name="udajeOOsvc" type="UdajeOOsvcCrType"/>
      <xs:element name="ico" type="IcoCrType" minOccurs="0"/>
      <xs:element name="dic" type="DicCrType" minOccurs="0"/>
      <xs:element name="vs" type="VariabilniSymbolCrType" minOccurs="0"/>
      <xs:element name="adresa" type="AdresaCrType" minOccurs="0"/>
      <xs:element name="trvaleSidlo" type="xs:boolean" minOccurs="0"/>
      <xs:element name="pojisteni" type="PojisteniType" minOccurs="0"/>
      <xs:element name="datovaSchranka" type="DatovaSchrankaType" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="UdajeOOsvcCrType">
    <xs:sequence>
      <xs:element name="nazev" type="Nazev155Type">
        <xs:annotation>
          <xs:documentation>Úplný název společnosti/v případě fyzické osoby jméno a příjmení</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="datumZahajeni" type="xs:date" minOccurs="0"/>
      <xs:element name="datumOpravneni" type="xs:date" minOccurs="0"/>
      <xs:element name="obor" type="Nazev700Type" minOccurs="0"/>
      <xs:element name="charakterCinnosti" type="Nazev700Type" minOccurs="0"/>
      <xs:element name="cinnostVCr" type="TypCinnostiVCrType" minOccurs="0"/>
      <xs:element name="dvaMesicePredem" type="xs:boolean" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Údaje o výkonu samostatné výdělečné činnosti v ČR-->
  <xs:complexType name="CinnostiOsvcCrType">
    <xs:sequence>
      <xs:element name="cinnostOsvcCr" type="CinnostOsvcCrType" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="CinnostOsvcCrType">
    <xs:sequence>
      <xs:element name="mistoVykonu" type="MistoVykonuCrType" minOccurs="0"/>
      <xs:element name="dobaTrvani" type="ObdobiNeurciteType"/>
      <xs:group ref="StatusZadateleOsvcGroup"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Údaje o samostatné výdělečné činnosti v zahraničí -->
  <xs:complexType name="CinnostiOsvcZahraniciType">
    <xs:sequence>
      <xs:element name="cinnostOsvcZahranici" type="CinnostOsvcZahraniciType" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="CinnostOsvcZahraniciType">
    <xs:sequence>
      <xs:element name="mistoVykonu" type="MistoVykonuZahraniciType" minOccurs="0"/>
      <xs:element name="dobaTrvani" type="ObdobiNeurciteType"/>
      <xs:group ref="StatusZadateleOsvcGroup"/>
      <xs:element name="obor" type="Nazev700Type" minOccurs="0"/>
      <xs:element name="charakterCinnosti" type="Nazev700Type" minOccurs="0"/>
      <xs:element name="zahranicniPracovniVztah" type="xs:boolean" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Poměry výkonu činnosti OSVČ -->
  <xs:complexType name="PomeryVykonuCinnostiOsvcType">
    <xs:sequence>
      <xs:element name="pomeryCinnosti" type="PomeryCinnostiOsvcType" minOccurs="0"/>
      <xs:element name="okrajovaCinnost" type="xs:boolean" minOccurs="0"/>
      <xs:element name="okrajovaCinnostStaty" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="stat" type="StatType" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PomeryCinnostiOsvcType">
    <xs:sequence>
      <xs:element name="pomerCinnosti" type="PomerCinnostiOsvcType" maxOccurs="4"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PomerCinnostiOsvcType">
    <xs:sequence>
      <xs:element name="obrat" type="Cislo3Type"/>
      <xs:element name="prijem" type="Cislo3Type"/>
      <xs:element name="doba" type="Cislo3Type"/>
      <xs:element name="sluzba" type="Cislo3Type"/>
      <xs:element name="stat" type="StatType"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Údaje o dobách pojištění -->
  <xs:complexType name="DobaPojisteniType">
    <xs:sequence>
      <xs:element name="pojisteniObdobi" type="ObdobiType"/>
      <xs:element name="davky" type="xs:boolean" minOccurs="0"/>
      <xs:element name="davkyObdobi" type="ObdobiType" minOccurs="0"/>
      <xs:element name="cisloPojisteni" type="Nazev30Type"/>
      <xs:element name="nazevZahranicniInstituce" type="Nazev155Type"/>
      <xs:element name="pracovniUraz" type="xs:boolean" minOccurs="0"/>
      <xs:element name="rodinneDavky" type="xs:boolean" minOccurs="0"/>
      <xs:element name="vymahani" type="xs:boolean" minOccurs="0"/>
      <xs:element name="duchody" type="xs:boolean" minOccurs="0"/>
      <xs:element name="nemoc" type="xs:boolean" minOccurs="0"/>
      <xs:element name="davkyNezamestnanost" type="xs:boolean" minOccurs="0"/>
      <xs:element name="vse" type="xs:boolean" minOccurs="0"/>
      <xs:element name="adresa" type="AdresaZahranicniType"/>
      <xs:element name="potvrzeniOPrislusnosti" type="xs:boolean" minOccurs="0"/>
      <xs:element name="potvrzeniOPrislusnostiObdobi" type="ObdobiType" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Důvody žádosti o výjimku -->
  <xs:simpleType name="DuvodZadostiOVyjimkuType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
      <xs:maxLength value="700"/>
    </xs:restriction>
  </xs:simpleType>

  <!-- Přeshraniční práce na dálku (telework) -->
  <xs:complexType name="TeleworkType">
    <xs:sequence>
      <xs:element name="praceJindeNezProvozovna" type="xs:boolean"/>
      <xs:element name="praceIT" type="xs:boolean"/>
      <xs:element name="bezVydelecneCinnosti" type="xs:boolean"/>
      <xs:element name="zamestnavatelNazev" type="Nazev155Type"/>
      <xs:element name="rozsahDoby">
        <xs:simpleType>
          <xs:restriction base="xs:integer">
            <xs:minInclusive value="1"/>
            <xs:maxInclusive value="100"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="stat" type="StatType"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Klasifikace ekonomických činností dle CZ-NACE -->
  <xs:simpleType name="EkonomickaCinnostKodType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
      <xs:maxLength value="2"/>
    </xs:restriction>
  </xs:simpleType>

  <!-- Doplňující informace -->
  <xs:simpleType name="DoplnujiciInformaceType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
      <xs:maxLength value="700"/>
    </xs:restriction>
  </xs:simpleType>

  <!-- Údaje o zmocněnci -->
  <xs:complexType name="ZmocnenecType">
    <xs:sequence>
      <xs:choice>
        <xs:element name="fyzickaOsoba">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="prijmeni" type="JmenoPrijmeniType"/>
              <xs:element name="jmeno" type="JmenoPrijmeniType"/>
              <xs:element name="rodneCislo" type="RodneCisloType"/>
              <xs:element name="ico" type="IcoCrType" minOccurs="0"/>
              <xs:element name="email" type="EmailType" minOccurs="0"/>
              <xs:element name="telefon" type="TelCisloType" minOccurs="0"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="pravnickaOsoba">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="nazev" type="Nazev155Type"/>
              <xs:element name="ico" type="Nazev25Type"/>
              <xs:element name="icoStat" type="StatType"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
      <xs:element name="datovaSchranka" type="DatovaSchrankaType" minOccurs="0"/>
      <xs:element name="datovaSchrankaNezrizena" type="xs:boolean" minOccurs="0"/>
      <xs:element name="adresa" type="AdresaZahranicniType" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Prohlášení státního příslušníka třetí země -->
  <xs:complexType name="ProhlaseniStatnihoPrislusnikaTretiZemeType">
    <xs:sequence>
      <xs:element name="povoleni" type="xs:boolean" minOccurs="0"/>
      <xs:element name="obdobi" type="ObdobiOtevreneType" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Prohlášení žadatele -->
  <xs:complexType name="ProhlaseniZadateleType">
    <xs:sequence>
      <xs:element name="misto" type="Nazev50Type"/>
      <xs:element name="dne" type="xs:date"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Přílohy -->
  <xs:complexType name="PrilohyType">
    <xs:sequence>
      <xs:element name="priloha" type="PrilohaType" minOccurs="0" maxOccurs="9"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PrilohaType">
    <xs:sequence>
      <xs:element name="nazev">
        <xs:annotation>
          <xs:documentation>Název přílohy/souboru včetně přípony. Povolené typy příloh/souborů jsou uvedeny v dokumentaci.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="100"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="popis" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Popis resp. krátký komentář k příloze.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="100"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="data" type="xs:base64Binary">
        <xs:annotation>
          <xs:documentation>Data přílohy, max 2 MB v base64</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
