﻿<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://schemas.cssz.cz/VPDPP/2024" xmlns="http://schemas.cssz.cz/VPDPP/2024"
  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 namespace="http://schemas.cssz.cz/baseTypes/v2" schemaLocation="baseTypes2.xsd" />

  <xs:element name="podaniVpdpp" type="PodaniVpdppType"/>
  <xs:complexType name="PodaniVpdppType">
    <xs:sequence>
      <xs:element name="VENDOR" minOccurs="0">
        <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">
        <xs:complexType>
          <xs:attribute name="EmailNotifikace" type="xs:string"/>
          <xs:attribute name="ISDSreport" type="xs:string"/>
          <xs:attribute name="VerzeProtokolu" type="xs:string"/>
        </xs:complexType>
      </xs:element>
      <xs:element name="formularVpdpp" type="FormularVpdppType" maxOccurs="1500"/>
    </xs:sequence>
    <xs:attribute name="partialAccept" type="xs:string"/>
  </xs:complexType>

  <xs:element name="formularVpdpp" type="FormularVpdppType"/>
  <xs:complexType name="FormularVpdppType">
    <xs:sequence>
      <xs:element name="hlavicka" type="HlavickaType"/>
      <xs:element name="zamestnavatel" type="ZamestnavatelType" />
      <xs:element name="zamestnanec" type="ZamestnanecType" />
      <xs:element name="vykazPrijmu" type="VykazPrijmuType" />
    </xs:sequence>
    <xs:attribute name="poradoveCislo" type="PoradoveCisloType" 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="HlavickaType">
    <xs:sequence>
      <xs:element name="obdobiMesic">
        <xs:annotation>
          <xs:documentation>Vykazované období – měsíc</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="bt:simpleNNType">
            <xs:length value="2"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="obdobiRok">
        <xs:annotation>
          <xs:documentation>Vykazované období – rok</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="bt:simpleNNType">
            <xs:length value="4"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="kodOssz">
        <xs:annotation>
          <xs:documentation>Kód OSSZ/PSSZ/MSSZ Brno dle číselníku</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="bt:simpleNType">
            <xs:minInclusive value="100"/>
            <xs:maxInclusive value="999"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="ZamestnavatelType">
    <xs:sequence>
      <xs:element name="nazev">
        <xs:annotation>
          <xs:documentation>Název zaměstnavatele</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="bt:simpleL2Type">
            <xs:minLength value="1"/>
            <xs:maxLength value="144"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ico" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Identifikační číslo zaměstnavatele</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="bt:simpleA_NN_ZZType">
            <xs:minLength value="1"/>
            <xs:maxLength value="35"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="vs">
        <xs:annotation>
          <xs:documentation>Variabilní symbol</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="bt:simpleNNType">
            <xs:length value="10"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="ZamestnanecType">
    <xs:sequence>
      <xs:element name="prijmeni">
        <xs:annotation>
          <xs:documentation>Příjmení</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="bt:simpleA_ZX_SP_Type">
            <xs:minLength value="1"/>
            <xs:maxLength value="100"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="jmeno">
        <xs:annotation>
          <xs:documentation>Jméno</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="bt:simpleA_ZX_SP_Type">
            <xs:minLength value="1"/>
            <xs:maxLength value="100"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="rodneCislo" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Rodné číslo/EČP</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="bt:simpleNNType">
            <xs:minLength value="9"/>
            <xs:maxLength value="10"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="datumNarozeni" type="xs:date" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Datum narození</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="mistoNarozeni" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Místo narození</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="bt:simpleL2Type">
            <xs:minLength value="1"/>
            <xs:maxLength value="50"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="pohlavi" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Pohlaví</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="M"/>
            <xs:enumeration value="Z"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="rodnePrijmeni" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Rodné příjmení</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="bt:simpleA_ZX_SP_Type">
            <xs:minLength value="1"/>
            <xs:maxLength value="100"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="kodZdravotniPojistovny" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Kód zdravotní pojišťovny dle číselníku C_ZPOJ</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="3"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="statniObcanstvi" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Státní občanství dle číselníku C_STAT</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="2"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="VykazPrijmuType">
    <xs:sequence>
      <xs:element name="akce">
        <xs:annotation>
          <xs:documentation>Typ/Číslo akce. Určuje charakter požadované operace.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="bt:simpleNType">
            <xs:minInclusive value="1"/>
            <xs:maxInclusive value="99"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="zamestnaniOd" type="xs:date">
        <xs:annotation>
          <xs:documentation>Datum nástupu do zaměstnání</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="zamestnaniDo" type="xs:date" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Datum skončení zaměstnání</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="kodDpp">
        <xs:annotation>
          <xs:documentation>Kód DPP z číselníku C_DRCI</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="bt:simpleA_NType">
            <xs:length value="1"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="zmr" type="xs:boolean" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Zaměstnání malého rozsahu</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="prijmyZuctovane" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Příjmy zúčtované zaměstnavatelem zaměstnanci</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="bt:simpleNNType">
            <xs:minLength value="1"/>
            <xs:maxLength value="12"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="prijemPoSkonceni" type="xs:boolean" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Příjem po skončení zaměstnání</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="PoradoveCisloType">
    <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>
