﻿<?xml version="1.0" encoding="utf-8" ?>
<xs:schema xmlns="http://www.mvcr.cz/nsesss/2024/log" xmlns:xs="http://www.w3.org/2001/XMLSchema"
  elementFormDefault="qualified" targetNamespace="http://www.mvcr.cz/nsesss/2024/log" version="4.0"
  xml:lang="cs">
  <xs:element name="TransakcniLogObjektu">
    <xs:annotation>
      <xs:documentation>Kořenový element souboru transakčního protokolu generovaného pro jeden
        konkrétní objekt vedený v rámci IS.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="TransLogInfo" type="tTransLogInfoObjektu">
          <xs:annotation>
            <xs:documentation>Hlavička transakčního protokolu.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="Udalosti">
          <xs:annotation>
            <xs:documentation>Seznam událostí objektu vzniklých v zadaném období.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
              <xs:element name="Udalost" type="tUdalostObjektu"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="TransakcniLogSystemu">
    <xs:annotation>
      <xs:documentation>Kořenový element souboru transakčního protokolu generovaného v rámci celého
        IS. Může obsahovat veškeré události systému vzniklé v zadaném časovém období (potom se
        element TypyObjektu neuvádí) nebo může obsahovat události pouze uvedených typů dokumentů
        (uvedeno v elementu TypyObjektu).</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="TransLogInfo" type="tTransLogInfoSystemu">
          <xs:annotation>
            <xs:documentation>Hlavička transakčního protokolu.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="Udalosti">
          <xs:annotation>
            <xs:documentation>Seznam událostí systému objektů zadaných typů vzniklých v zadaném
              období.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
              <xs:element name="Udalost" type="tUdalostSystemu"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="tTypObjektu">
    <xs:annotation>
      <xs:documentation>Specifikace typu objektu.</xs:documentation>
    </xs:annotation>
    <xs:choice>
      <xs:element name="TypObjektuId">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Komponenta"/>
            <xs:enumeration value="Zasilka"/>
            <xs:enumeration value="Dokument"/>
            <xs:enumeration value="Spis"/>
            <xs:enumeration value="Soucast"/>
            <xs:enumeration value="Dil"/>
            <xs:enumeration value="TypovySpis"/>
            <xs:enumeration value="VecnaSkupina"/>
            <xs:enumeration value="SpisovyPlan"/>
            <xs:enumeration value="Denik"/>
            <xs:enumeration value="KonfiguraceSystemu"/>
            <xs:enumeration value="Osoba"/>
            <xs:enumeration value="FunkcniMisto"/>
            <xs:enumeration value="SpisovyUzel"/>
            <xs:enumeration value="OrganizacniJednotka"/>
            <xs:enumeration value="SkupinaUzivatelu"/>
            <xs:enumeration value="KonverzeZMociUredni"/>
            <xs:enumeration value="Obalka"/>
            <xs:enumeration value="SkartacniRezim"/>
            <xs:enumeration value="SkartacniNavrh"/>
            <xs:enumeration value="SpisovaRozluka"/>
            <xs:enumeration value="SablonaTypovehoSpisu"/>
            <xs:enumeration value="SablonaSoucasti"/>
            <xs:enumeration value="Subjekt"/>
            <xs:enumeration value="DruhDokumentu"/>
            <xs:enumeration value="TypSpisu"/>
            <xs:enumeration value="UkladaciJednotka"/>
            <xs:enumeration value="SchvaleniSpis"/>
            <xs:enumeration value="SchvaleniDokument"/>
            <xs:enumeration value="SchvaleniKomponenta"/>
            <xs:enumeration value="ZpusobVyrizeni"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="TypObjektuText" type="xs:string"/>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="tTypUdalosti">
    <xs:annotation>
      <xs:documentation>Specifikace typu události.</xs:documentation>
    </xs:annotation>
    <xs:choice>
      <xs:element name="TypUdalostiId">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Zalozeni"/>
            <xs:enumeration value="Uprava"/>
            <xs:enumeration value="Zruseni"/>
            <xs:enumeration value="Zobrazeni"/>
            <xs:enumeration value="Export"/>
            <xs:enumeration value="Prenos"/>
            <xs:enumeration value="Storno"/>
            <xs:enumeration value="Zniceni"/>
            <xs:enumeration value="VlozeniDoSpisu"/>
            <xs:enumeration value="VyjmutiZeSpisu"/>
            <xs:enumeration value="PripojeniCJ"/>
            <xs:enumeration value="NovaVerze"/>
            <xs:enumeration value="VlozeniKDokumentu"/>
            <xs:enumeration value="VyjmutiZDokumentu"/>
            <xs:enumeration value="VlozeniKVypraveni"/>
            <xs:enumeration value="VyjmutiZVypraveni"/>
            <xs:enumeration value="PripojeniPodpisu"/>
            <xs:enumeration value="PripojeniRazitka"/>
            <xs:enumeration value="FinalniVerze"/>
            <xs:enumeration value="PredaniVypravne"/>
            <xs:enumeration value="Vypraveno"/>
            <xs:enumeration value="Doruceno"/>
            <xs:enumeration value="Vyrizeni"/>
            <xs:enumeration value="Schvaleni"/>
            <xs:enumeration value="Uzavreni"/>
            <xs:enumeration value="Otevreni"/>
            <xs:enumeration value="PostoupeniAgende"/>
            <xs:enumeration value="VraceniZAgendy"/>
            <xs:enumeration value="ZmenaZpracovatele"/>
            <xs:enumeration value="PripojeniKlicovehoSlova"/>
            <xs:enumeration value="OdebraniKlicovehoSlova"/>
            <xs:enumeration value="PredaniNaSpisovnu"/>
            <xs:enumeration value="PrevzetiNaSpisovnu"/>
            <xs:enumeration value="VraceniZeSpisovny"/>
            <xs:enumeration value="PozastaveniSkartacniOperace"/>
            <xs:enumeration value="ZruseniPozastaveniSkartacniOperace"/>
            <xs:enumeration value="VlozeniDoUkladaciJednotky"/>
            <xs:enumeration value="VyjmutiZUkladaciJednotky"/>
            <xs:enumeration value="VlozeniDoSkartacnihoNavrhu"/>
            <xs:enumeration value="VyjmutiZeSkartacnihoNavrhu"/>
            <xs:enumeration value="VlozeniDoSpisoveRozluky"/>
            <xs:enumeration value="VyjmutiZeSpisoveRozluky"/>
            <xs:enumeration value="KonverzeZMociUredni"/>
            <xs:enumeration value="KonverzeFormatu"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="TypUdalostiText" type="xs:string"/>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="tObjekt">
    <xs:sequence>
      <xs:element name="TypObjektu" type="tTypObjektu"/>
      <xs:element name="Identifikator" type="tIdentifikator"/>
      <xs:element minOccurs="0" name="DoplnujiciData">
        <xs:complexType>
          <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:group name="gSpolecneTransLogInfo">
    <xs:sequence>
      <xs:element name="Identifikator" type="tIdentifikator">
        <xs:annotation>
          <xs:documentation>Identifikátor transakčního protokolu. Každé generování transakčního
            protokolu by mělo být unikátně identifikováno. Součástí identifikátoru je také ZdrojID,
            který slouží k identifikaci zdrojového systému, ze kterého byl identifikátor
            generován.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="DatumVzniku" type="xs:dateTime">
        <xs:annotation>
          <xs:documentation>Datum a čas generování transakčního protokolu.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="DatumCasOd" type="xs:dateTime">
        <xs:annotation>
          <xs:documentation>Datum a čas, od kterého jsou události do transakčního protokolu
            generovány.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="DatumCasDo" type="xs:dateTime">
        <xs:annotation>
          <xs:documentation>Datum a čas, do kterého jsou události do transakčního protokolu
            generovány.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="Software" type="xs:string">
        <xs:annotation>
          <xs:documentation>Označení software ( typové ). Může sloužit společně s verzí SW k
            identifikaci typu transakčního protokolu (očekávání nadstandardních částí, položek
            atd.)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="VerzeSoftware" type="xs:string">
        <xs:annotation>
          <xs:documentation>Verze software. Upřesňuje označení software.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="DoplnujiciData">
        <xs:complexType>
          <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:complexType name="tTransLogInfoObjektu">
    <xs:sequence>
      <xs:group ref="gSpolecneTransLogInfo"/>
      <xs:element name="Objekt" type="tObjekt">
        <xs:annotation>
          <xs:documentation>Specifikace objektu, pro který je transakční protokol
            generován.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="tTransLogInfoSystemu">
    <xs:sequence>
      <xs:group ref="gSpolecneTransLogInfo"/>
      <xs:element minOccurs="0" name="TypyObjektu">
        <xs:complexType>
          <xs:sequence maxOccurs="unbounded">
            <xs:element name="TypObjektu" type="tTypObjektu"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:group name="gSpolecneUdalost">
    <xs:sequence>
      <xs:element name="Poradi" type="xs:positiveInteger">
        <xs:annotation>
          <xs:documentation>Pořadové číslo události v rámci transakčního protokolu ERMS. V číslování
            událostí mohou být mezery. Generovaný transakční protokol nemusí obsahovat všechny typy
            událostí. Události obsažené v transakčním protokolu mají svým pořadím zápisu odpovídat
            rostoucímu číslu Poradi.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="DatumVzniku" type="xs:dateTime">
        <xs:annotation>
          <xs:documentation>Datum a čas vzniku události</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="provedlKdo">
        <xs:annotation>
          <xs:documentation>Kdo událost vyvolal – příjmení, jméno, role a identifikátor osoby
            textově</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="TypUdalosti" type="tTypUdalosti"/>
      <xs:element minOccurs="0" name="ParametryUdalosti">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" name="ParametrUdalosti">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="NazevParametru" type="xs:string">
                    <xs:annotation>
                      <xs:documentation>Obsahuje identifikaci parametru. Je doporučeno, aby označení
                        parametrů splňovalo požadavky kladené na PARAM-NAME podle RFC5424 kapitolu
                        6.3.3. SD-PARAM tak, aby bylo možné realizovat snadnou konverzi transakčního
                        protokolu např. do formátu syslog.
                        http://tools.ietf.org/html/rfc5424#section-6.3.3 </xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element maxOccurs="unbounded" name="HodnotaParametru" type="xs:string">
                    <xs:annotation>
                      <xs:documentation>Obsahuje hodnotu nebo hodnoty parametru. </xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element minOccurs="0" name="DoplnujiciData">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:any minOccurs="0" maxOccurs="unbounded"/>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="PopisUdalosti" type="xs:string">
        <xs:annotation>
          <xs:documentation>Může obsahovat lidsky čitelný upřesňující popis vzniklé události. Tato
            položka je určena např. k textovému tisku historie objektu (bez využití parametrů
            události)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="DoplnujiciData">
        <xs:complexType>
          <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="ZdrojID">
        <xs:annotation>
          <xs:documentation>Identifikace zdroje události (zdrojového IS) Tato položka se standardně
            nebude uvádět. Pokud tato položka není uvedena, potom se automaticky za zdrojový systém
            chápe hodnota uvedená v hlavičce transakčního logu v položce Identifikator.ZdrojID Pouze
            v případě, kdy transakční protokol obsahuje události generované v rámci více IS se zde
            touto položkou odliší zdrojový systém události.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="50"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:complexType name="tUdalostObjektu">
    <xs:sequence>
      <xs:group ref="gSpolecneUdalost"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="tUdalostSystemu">
    <xs:sequence>
      <xs:group ref="gSpolecneUdalost"/>
      <xs:element name="Objekt" type="tObjekt">
        <xs:annotation>
          <xs:documentation>Specifikace objektu události.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="tIdentifikator">
    <xs:annotation>
      <xs:documentation>Obecný interní identifikátor informačního systému. Součástí informace
        obsažené v tomto prvku je i určení, který informační systém tento identifikátor
        vytvořil.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="HodnotaID">
        <xs:annotation>
          <xs:documentation>Hodnota interního identifikátoru</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="50"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ZdrojID">
        <xs:annotation>
          <xs:documentation>Zdroj interního identifikátoru: Zde uvedený text by měl jednoznačně
            specifikovat hlavního správce (zdroj) uvedeného identifikátoru. Protože seznam všech
            možných zdrojů identifikátorů není dopředu známý, musí se tato hodnota uvádět jako
            otevřený text. Pro zajištění jednoznačnosti identifikace zdroje hodnot identifikátorů je
            nutné dodržovat konvenci pro vyskládání textu, určujícího zdroj identifikace. Doporučený
            standard identifikace: &lt;-- DiV OLD fffff.pppppp.iiiii.ccccccc
            "firma.produkt.instalace.custum" kde fffff je jednoznačné jméno firmy dodavatele nebo
            jednoznačné označení organizace, která provozuje IS, který je zdrojem hodnoty
            identifikátoru. Kde pppppp je označení produktu v rámci kterého identifikátor vznikl.
            Kde iiiii je označení instalace (lokality) produktu. Může se jednat o identifikaci
            konkrétního zákazníka, kde je produkt provozován. Kde ccccccc a případně další sekce
            oddělené tečkami si určuje výrobce nebo provozovatel systému produkujícího
            identifikátory sám. Při tvorbě textu popisujícího zdroj identifikátorů je nutné dodržet
            minimálně první sekci, to je sekci označenou "fffff". Ostatní sekce jsou již nepovinné.
            --> pppp.aa.ccccccccc "původce.aplikace-agenda.číslo" kde pppp je jednoznačné jméno
            původce, který identifikátor přidělil kde aa je označení informačního systému (spisován
            služba, lokální agenda, centrální agenda apod.), která identifikátor
            přidělila</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="50"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
