<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://schemas.cssz.cz/nem/NEMPRI17" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://schemas.cssz.cz/baseTypes" targetNamespace="http://schemas.cssz.cz/nem/NEMPRI17" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
  <xs:import namespace="http://schemas.cssz.cz/baseTypes" schemaLocation="baseTypes.xsd"/>

  <xs:element name="NEMPRI" type="ctNEMPRI" />
  <xs:complexType name="ctNEMPRI">
    <xs:sequence>
      <xs:element name="VENDOR" minOccurs="0" maxOccurs="1">
        <xs:complexType>
          <xs:attribute name="productName" type="xs:string" />
          <xs:attribute name="productVersion" type="xs:string" />
        </xs:complexType>
      </xs:element>
      <xs:element name="SENDER" minOccurs="0" maxOccurs="1">
        <xs:complexType>
          <xs:attribute name="EmailNotifikace" type="xs:string" />
          <xs:attribute name="ISDSreport" type="xs:string" />
        </xs:complexType>
      </xs:element>
      <xs:element name="datovaVeta" type="CtDatovaVeta" maxOccurs="1500"/>
    </xs:sequence>
    <xs:attribute name="version" type="xs:string" use="required" fixed="2017.0" />
    <xs:attribute name="partialAccept" type="xs:string" />
  </xs:complexType>

  <xs:element name="datovaVeta" type="CtDatovaVeta" />
  <xs:complexType name="CtDatovaVeta">
    <xs:sequence>
      <xs:element name="dokument" type="CtDokument"/>
      <xs:element name="pojistenec" type="CtOsoba"/>
      <xs:element name="zamestnani" type="CtZamestnani"/>
      <xs:element name="rozhodneObdobi" type="CtRozhodneObdobi"/>
      <xs:element name="potvrzeniZamestnavatele" type="CtPotvrzeniZamestnavatele"/>
      <xs:element name="prilohaStrana2" type="CtPrilohaStrana2"/>
    </xs:sequence>
    <xs:attribute name="poradoveCislo" type="StPoradoveCisloType" use="required">
      <xs:annotation>
        <xs:documentation>Pořadové číslo formuláře v rámci podání</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="CtDokument">
    <xs:sequence>
      <xs:element name="zahranicni" type="xs:string" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
             "N" - výchozí hodnota (CZ, SK)
             "A" - zahraniční mimo Česka a Slovenska
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="cisloPotvrzeni" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:annotation>
              <xs:documentation>
                Pro dávky NEM a OCR (CZ/SK):
                  - CPN (pro papirove neschopenky) - NEM (1 písmeno + 6-7 číslic, písmena A-Z nebo Č, vždy velká) ci OCR (tzn. 6-7 číslic + 1 písmeno, písmena ve všech případech A-Z nebo Č, vždy velká.)
                  - ECN (pro elektronicke neschopenky), sklada se z nepovinneho ICPE (8 cislic) a poradoveho cisla (RRMMDDPPPP, kde PPPP je poradi v ramci dne urceneho dd.mm.rr)
                Pro dávky NEM a OCR (zahraniční):
                  - Formát nespecifikován, max 18 znaků
                Pro dávky PPM a VPTM:
                - Nesmí být vyplněno
              </xs:documentation>
            </xs:annotation>
            <xs:maxLength value="18"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="poznamka" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="200"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="kodOSSZ">
        <xs:annotation>
          <xs:documentation>Kód pracoviště z CIS_PRACOVIST</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="tns:simpleNType">
            <xs:minInclusive value="100" />
            <xs:maxInclusive value="999" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="nazevOSSZ" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Název pracoviště z CIS_PRACOVIST</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="128"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="druhDavky" type="StDruhDavky"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="CtOsoba">
    <xs:sequence>
      <xs:element name="jmeno">
        <xs:simpleType>
          <xs:restriction base="tns:simpleA_ZX_SP_Type">
            <xs:minLength value="1"/>
            <xs:maxLength value="50"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="prijmeni">
        <xs:simpleType>
          <xs:restriction base="tns:simpleA_ZX_SP_Type">
            <xs:minLength value="1"/>
            <xs:maxLength value="50"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="rodneCislo">
        <xs:simpleType>
          <xs:restriction base="tns:simpleNNType">
            <xs:minLength value="9"/>
            <xs:maxLength value="10"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="CtZamestnani">
    <xs:sequence>
      <xs:element name="VSZamestnavatel">
        <xs:simpleType>
          <xs:restriction base="tns:simpleNType_string">
            <xs:length value="10"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ICZamestnavatel" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="tns:simpleA_NN_ZZType">
            <xs:maxLength value="35"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="nazevZamestnavatel">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="144"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="zamestnanOd" type="xs:date"/>
      <xs:element name="zamestnanDo" type="xs:date" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Vyplňuje se jen při skončení zaměstnání</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="druhCinnosti">
        <xs:annotation>
          <xs:documentation>Kód pracoviště z číselníku druhu činností</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:pattern value="[1-9A-Z]"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="CtRozhodneObdobi">
    <xs:sequence>
      <xs:element name="rozhodneObdobiOd" type="xs:date"/>
      <xs:element name="rozhodneObdobiDo" type="xs:date"/>
      <xs:element name="polozky" type="CtPolozkyRozhodnehoObdobi"/>
      <xs:element name="zapocitatelnyPrijemCelkem" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="tns:simpleNType_string">
            <xs:maxLength value="10"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="vylouceneDnyCelkem" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="tns:simpleNNType">
            <xs:maxLength value="3"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="pravdepodobnaVysePrijmu" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="tns:simpleNDType">
            <xs:maxLength value="10"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="CtPolozkyRozhodnehoObdobi">
    <xs:annotation>
      <xs:documentation>max 12 měsíců</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="polozka" type="CtPolozkaRozhodnehoObdobi" minOccurs="0" maxOccurs="12"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="CtPolozkaRozhodnehoObdobi">
    <xs:annotation>
      <xs:documentation>měsíc, rok, započitatelný příjem a vyloučené dny</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="kalendarniMesic">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1"/>
            <xs:maxInclusive value="12"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="kalendarniRok">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1000"/>
            <xs:maxInclusive value="9999"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="zapocitatelnyPrijem">
        <xs:simpleType>
          <xs:restriction base="tns:simpleNNType">
            <xs:minLength value="1"/>
            <xs:maxLength value="10"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="vylouceneDny">
        <xs:simpleType>
          <xs:restriction base="tns:simpleNNType">
            <xs:minLength value="1"/>
            <xs:maxLength value="2"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="CtPotvrzeniZamestnavatele">
    <xs:sequence>
      <xs:element name="pocetOdpracovanychHodin" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="tns:simpleNN_ZLType">
            <xs:maxLength value="5"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="pracovniDoba" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="tns:simpleNN_ZLType">
            <xs:maxLength value="5"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="CtPrilohaStrana2">
    <xs:sequence>
      <xs:element name="pracoval" type="tns:simpleLSType"/>
      <xs:element name="prijemMalyRozsah" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="tns:simpleNDType">
            <xs:maxLength value="10"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:sequence>
        <xs:element name="pobiraDuchod" type="tns:simpleLSType"/>
        <xs:element name="druhDuchodu" type="xs:string" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Kód pracoviště z C_DUCH_ONZ</xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:sequence>
      <xs:sequence>
        <xs:element name="jeStudentem" type="tns:simpleLSType"/>
        <xs:element name="spadaDoPrazdnin" type="tns:simpleLSType"/>
      </xs:sequence>
      <xs:element name="dobaVolnaPrvniZamestnani" type="tns:simpleLSType"/>
      <xs:element name="volnoBezNahrady" type="tns:simpleLSType" minOccurs="0"/>
      <xs:sequence minOccurs="0">
        <xs:element name="volnoBezNahradyOd" type="xs:date"/>
        <xs:element name="volnoBezNahradyDo" type="xs:date"/>
      </xs:sequence>
      <xs:sequence minOccurs="0">
        <xs:element name="nastupujePPM" type="tns:simpleLSType" minOccurs="0"/>
        <xs:element name="narozeniDitete" type="xs:date" minOccurs="0"/>
      </xs:sequence>
      <xs:element name="prevedenaNaJinouPraci" type="tns:simpleLSType"/>
      <xs:element name="datumNaJinouPraci" type="xs:date" minOccurs="0"/>
      <xs:element name="exekuce" type="tns:simpleLSType"/>
      <xs:element name="insolvence" type="tns:simpleLSType"/>
      <xs:element name="dalsiSdeleni" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="200"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="kontaktniPracovnik" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="tns:simpleA_ZX_SP_Type">
            <xs:maxLength value="100"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="kontaktniTelefon" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="tns:simpleA_NN_ZZ_SP_Type">
            <xs:maxLength value="16"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="kontaktniEmail" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:pattern value="[^@]+@[^\.]+\..+"/>
            <xs:maxLength value="250"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="podanoV" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="50"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="prilohy" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="priloha" minOccurs="0" maxOccurs ="unbounded">
              <xs:complexType>
                <xs:attribute name="nazev" type="xs:string" />
                <xs:attribute name="typ" type="xs:string" />
                <xs:attribute name="komentar" type="xs:string" />
                <xs:attribute name="base64data" type="xs:string" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="coun" type="xs:string" />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <!-- ========== DATOVE TYPY =============== -->
  <xs:simpleType name="StDruhDavky">
    <xs:restriction base="xs:string">
      <xs:enumeration value="NEM"/>
      <xs:enumeration value="OCR"/>
      <xs:enumeration value="PPM"/>
      <xs:enumeration value="VPM"/>
      <xs:enumeration value="OPP"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="StPoradoveCisloType">
    <xs:annotation>
      <xs:documentation>Pořadové číslo položky, 1-1500</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:int">
      <xs:minInclusive value="1"/>
      <xs:maxInclusive value="1500"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>