<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

  <xs:element name="zmluvy">
    <xs:complexType>
      <xs:sequence minOccurs="1" maxOccurs="1">
        <xs:element name="zmluva" type="zmluvaType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="informacia" type="informaciaType" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="zmluvaType">
    <xs:sequence>
      <xs:element name="druh" type="druhType" minOccurs="0">
        <xs:annotation><xs:documentation>Druh dokumentu 1=zmluva, 2=dodatok</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="id_zmluvy" type="xs:nonNegativeInteger" minOccurs="0">
        <xs:annotation><xs:documentation>Interné ID dokumentu v evidenčnom systéme</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="cislo_zmluvy" type="stringType">
        <xs:annotation><xs:documentation>Číslo zmluvy podľa evidencie</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="obstaravatel" type="stringType">
        <xs:annotation><xs:documentation>Konktrétny objednávateľ (napr. podriadená inštitúcia rezortu)</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="obstaravatel_ico" type="stringType">
         <xs:annotation><xs:documentation>IČO obstarávateľa, povinné ak dodávateľ nie je súkromná osoba</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="obstaravatel_sidlo" type="stringType" minOccurs="0">
         <xs:annotation><xs:documentation>Sídlo obstarávateľa</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="dodavatel" type="stringType">
        <xs:annotation><xs:documentation>Dodávateľ, zadávajte názov spoločnosti podľa ORSR, v prípade súkromnej osoby "Priezvisko Meno"</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="dodavatel_ico" type="stringType">
         <xs:annotation><xs:documentation>IČO dodávateľa, povinné ak dodávateľ nie je súkromná osoba</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="dodavatel_sidlo" type="stringType" minOccurs="0">
         <xs:annotation><xs:documentation>Sídlo dodávateľa</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="predmet_zmluvy" type="stringType">
         <xs:annotation><xs:documentation>Presný názov zmluvy</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="datum" type="datumType" minOccurs="1">
        <xs:annotation><xs:documentation>Dátum uzavretia zmluvy</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="datum_ucinnosti" type="datumType" minOccurs="0">
        <xs:annotation><xs:documentation>Dátum, od ktorého je zmluva účinná</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="text_ucinnosti" type="stringType" minOccurs="0">
        <xs:annotation><xs:documentation>Text účinosti, používa sa v prípade, že účinnost nemá formu dátumu (napr. odvoláva sa na udalosť)</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="datum_platnosti_do" type="datumType" minOccurs="0">
        <xs:annotation><xs:documentation>Dátum, kedy skončila platnosť zmluvy</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="suma_zmluva" type="xs:float">
        <xs:annotation><xs:documentation>Zmluvne dohodnutá suma</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="uvo" type="xs:string" minOccurs="0">
        <xs:annotation><xs:documentation>URL adresa verejného obstarávania na portáli UVO</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="poznamka" type="stringType" minOccurs="0">
        <xs:annotation><xs:documentation>Poznámka k zmluve</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="ref" type="stringType" minOccurs="0">
        <xs:annotation><xs:documentation>Odkaz na inú zmluvu (napr. pri dodatku)</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="prilohy" type="prilohyType" minOccurs="1" maxOccurs="unbounded">
        <xs:annotation><xs:documentation>Zoznam súborových príloh k zmluve</xs:documentation></xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  
  <xs:complexType name="informaciaType">
    <xs:sequence>
      <xs:element name="druh" type="druhType" minOccurs="0">
        <xs:annotation><xs:documentation>Druh dokumentu 1=zmluva, 2=dodatok</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="id_zmluvy" type="xs:nonNegativeInteger" minOccurs="0">
        <xs:annotation><xs:documentation>Interné ID dokumentu v evidenčnom systéme</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="cislo_zmluvy" type="stringType" minOccurs="0">
        <xs:annotation><xs:documentation>Číslo zmluvy podľa evidencie</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="obstaravatel" type="stringType">
        <xs:annotation><xs:documentation>Konktrétny objednávateľ (napr. podriadená inštitúcia rezortu)</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="obstaravatel_ico" type="stringType">
         <xs:annotation><xs:documentation>IČO obstarávateľa, povinné ak dodávateľ nie je súkromná osoba</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="obstaravatel_sidlo" type="stringType" minOccurs="0">
         <xs:annotation><xs:documentation>Sídlo obstarávateľa</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="dodavatel" type="stringType">
        <xs:annotation><xs:documentation>Dodávateľ, zadávajte názov spoločnosti podľa ORSR, v prípade súkromnej osoby "Priezvisko Meno"</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="dodavatel_ico" type="stringType">
         <xs:annotation><xs:documentation>IČO dodávateľa, povinné ak dodávateľ nie je súkromná osoba</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="dodavatel_sidlo" type="stringType" minOccurs="0">
         <xs:annotation><xs:documentation>Sídlo dodávateľa</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="predmet_zmluvy" type="stringType">
         <xs:annotation><xs:documentation>Presný názov zmluvy</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="popis" type="xs:string">
        <xs:annotation><xs:documentation>Popis predmetu zmluvy</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="datum" type="datumType" minOccurs="1">
        <xs:annotation><xs:documentation>Dátum uzavretia zmluvy</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="datum_ucinnosti" type="datumType" minOccurs="0">
        <xs:annotation><xs:documentation>Dátum, od ktorého je zmluva účinná</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="text_ucinnosti" type="stringType" minOccurs="0">
        <xs:annotation><xs:documentation>Text účinosti, používa sa v prípade, že účinnost nemá formu dátumu (napr. odvoláva sa na udalosť)</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="datum_platnosti_do" type="datumType" minOccurs="0">
        <xs:annotation><xs:documentation>Dátum, kedy skončila platnosť zmluvy</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="suma_zmluva" type="xs:float">
        <xs:annotation><xs:documentation>Zmluvne dohodnutá suma</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="uvo" type="xs:string" minOccurs="0">
        <xs:annotation><xs:documentation>URL adresa verejného obstarávania na portáli UVO</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="poznamka" type="stringType" minOccurs="0">
        <xs:annotation><xs:documentation>Poznámka k zmluve</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="ref" type="stringType" minOccurs="0">
        <xs:annotation><xs:documentation>Odkaz na inú zmluvu (napr. pri dodatku)</xs:documentation></xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="prilohyType">
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
       <xs:element name="priloha" type="prilohaType"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="prilohaType">
    <xs:sequence>
      <xs:element name="id_priloha" type="xs:nonNegativeInteger" minOccurs="0">
        <xs:annotation><xs:documentation>Interné ID prílohy v evidenčnom systéme</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="nazov_suboru" type="stringType">
        <xs:annotation><xs:documentation>Názov súbroru v prílohe</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="popis" type="stringType">
        <xs:annotation><xs:documentation>Popis obsahu súboru</xs:documentation></xs:annotation>
      </xs:element>
      <xs:element name="subor_prilohy" type="pdfType">
        <xs:annotation><xs:documentation>Obsah priloženého súboru, kódovaný pomocou base64</xs:documentation></xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <!-- Dátum vo formáte yyyy-mm-dd -->
  <xs:simpleType name='datumType'>
    <xs:restriction base='xs:string'>
      <xs:pattern value="([1-2][0-9][0-9][0-9])-(01|02|03|04|05|06|07|08|09|10|11|12)-(01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)"/>
    </xs:restriction>
  </xs:simpleType>

  <!-- Retazec - obmedzenie na max. 255 znakov -->
  <xs:simpleType name='stringType'>
    <xs:restriction base='xs:string'>
      <xs:maxLength value="255"/>
    </xs:restriction>
  </xs:simpleType>
  
  <!-- Druh dokumentu - ciselnik -->
  <xs:simpleType name='druhType'>
    <xs:restriction base='xs:nonNegativeInteger'>
      <xs:enumeration value="1"/>
      <xs:enumeration value="2"/>
    </xs:restriction>
  </xs:simpleType>

   <!-- Priloha s PDF - base64 -->
  <xs:simpleType name='pdfType'>
    <xs:restriction base='xs:base64Binary'>
      <xs:pattern value="JVBER.+"/>
    </xs:restriction>
  </xs:simpleType>


</xs:schema>
