<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://www.ispop.cz" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="F_ODP_PCB">
    <xs:complexType>
      <xs:sequence>
      
        <xs:element name="meta-info" type="MetaInfoType" />

        <xs:element name="List0">
          <xs:complexType>
            <xs:all>
              <xs:element name="Vlastnik" type="NotEmptyStringType" />
              <xs:element name="ICO" type="ICType" />
              <xs:element name="Obec" type="NotEmptyStringType" />
              <xs:element name="KodObce" type="NotEmptyStringType" />
              <xs:element name="Okres" type="NotEmptyStringType" />
              <xs:element name="KodOkresu" type="NotEmptyStringType" />
              <xs:element name="Ulice" type="NotEmptyStringType" />
              <xs:element name="PSC" type="PscType" />
              <xs:element name="PoverenaOsoba" type="OsobaType" />
              <xs:element name="TelefonPredvolba" type="xs:string" minOccurs="0" />
              <xs:element name="Telefon" type="xs:int" minOccurs="0" />
              <xs:element name="Email" type="NotEmptyStringType" />
              <xs:element name="ZaSpravnost" type="xs:string" minOccurs="0" />
            </xs:all>
          </xs:complexType>
        </xs:element>

        <xs:element name="List1">
          <xs:complexType>
            <xs:all>
            
              <xs:element name="RegistracniCisloEvidencnihoListu" minOccurs="0">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="Pole1" type="xs:int" minOccurs="0" />
                    <xs:element name="Pole2" type="xs:int" minOccurs="0" />
                  </xs:all>
                </xs:complexType>
              </xs:element>
              <xs:element name="InventarizaciProvadi" type="NotEmptyStringType" />
              <xs:element name="Provozovatel" type="xs:string" minOccurs="0" />
              <xs:element name="IC" type="ICType" minOccurs="0" />
              <xs:element name="Obec" type="xs:string" minOccurs="0" />
              <xs:element name="KodObce" type="xs:string" minOccurs="0" />
              <xs:element name="Okres" type="xs:string" minOccurs="0" />
              <xs:element name="KodOkresu" type="xs:string" minOccurs="0" />
              <xs:element name="Ulice" type="xs:string" minOccurs="0" />
              <xs:element name="PSC" type="PscType" minOccurs="0" />
              <xs:element name="PoverenaOsoba" type="OsobaType" minOccurs="0" />
              <xs:element name="TelefonPredvolba" type="xs:string" minOccurs="0" />
              <xs:element name="Telefon" type="xs:int" minOccurs="0" />
              <xs:element name="Email" type="xs:string" minOccurs="0" />
              
              <xs:element name="MistoUmisteni" minOccurs="0">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="MistoUmisteni" type="xs:string" minOccurs="0" />
                    <xs:element name="Obec" type="xs:string" minOccurs="0" />
                    <xs:element name="KodObce" type="xs:string" minOccurs="0" />
                    <xs:element name="SpecifikaceMista" type="xs:string" minOccurs="0" />
                  </xs:all>
                </xs:complexType>
              </xs:element>
              
              <xs:element name="ZarizeniNeboPCB" minOccurs="0">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="VyrobniCisloZarizeni" type="NotEmptyStringType" />
                    <xs:element name="ZarizeniDetail" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="Kod" type="xs:string" minOccurs="0" />
                          <xs:element name="Hermetizace" type="xs:string" minOccurs="0" />
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="UpresneniDruhuZarizeni" type="xs:string" minOccurs="0" />
                    <xs:element name="RozliseniOddelenychCasti" type="xs:string" minOccurs="0" />
                    <xs:element name="VazbaNaMaterskeZarizeni" type="xs:string" minOccurs="0" />
                    <xs:element name="TypZarizeni" type="xs:string" minOccurs="0" />
                    <xs:element name="VyrobceZarizeni" type="xs:string" minOccurs="0" />
                    <xs:element name="RokVyrobyZarizeni" type="xs:int" minOccurs="0" />
                    <xs:element name="JmenovitaNapeti" type="xs:string" minOccurs="0" />
                    <xs:element name="JmenovityVykon" type="xs:string" minOccurs="0" />
                    <xs:element name="DruhProvozniKapaliny" type="xs:int" minOccurs="0" />
                    <xs:element name="UpresneniDruhuProvozniKapaliny" type="xs:string" minOccurs="0" />
                    <xs:element name="ObchodniNazevProvozniKapaliny" type="xs:string" minOccurs="0" />
                    <xs:element name="VyrobceProvozniKapaliny" type="xs:string" minOccurs="0" />
                    <xs:element name="MnozstviProvozniKapaliny" type="xs:decimal" />
                    <xs:element name="ZpusobZjisteni" type="NotEmptyStringType" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              
              <xs:element name="ZaSpravnost" type="xs:string" minOccurs="0" />
            </xs:all>
          </xs:complexType>
        </xs:element>

        <xs:element name="List2">
          <xs:complexType>
            <xs:all>
            
              <xs:element name="ZarizeniNeboPCB">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="VyrobniCisloZarizeni" type="xs:string" minOccurs="0" />
                    <xs:element name="ZarizeniDetail">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="Kod" type="xs:string" minOccurs="0" />
                          <xs:element name="Hermetizace" type="xs:string" minOccurs="0" />
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                  </xs:all>
                </xs:complexType>
              </xs:element>
              
              <xs:element name="ZpusobProkazaniNeExistencePCB">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="CestnymProhlasenimVyrobce" type="xs:int" />
                    <xs:element name="IdentifikaceProhlaseni" type="xs:string" minOccurs="0" />
                    <xs:element name="AnalytickymStanovenim" type="xs:int" minOccurs="0" />
                    <xs:element name="OdectenimZeStitku" type="xs:int" minOccurs="0" />
                  </xs:all>
                </xs:complexType>
              </xs:element>
              
              <xs:element name="ProtokolOOdberuVzorku">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="Zarizeni" type="xs:string" minOccurs="0" />
                    <xs:element name="SpecifikaceMistaOdberu" type="NotEmptyStringType" />
                    <xs:element name="DatumOdberuVzorku" type="xs:date" />
                    <xs:element name="CisloVzorku" type="xs:int" minOccurs="0" />
                    <xs:element name="IdentifikacniCisloOsobyProvadejiciOdber" type="xs:int" minOccurs="0" />
                    <xs:element name="ZastupceProvozovatele" type="OsobaType" minOccurs="0" />
                    <xs:element name="Poznamka" type="xs:string" minOccurs="0" />
                  </xs:all>
                </xs:complexType>
              </xs:element>
              
              <xs:element name="ProtokolOAnalytickemStanoveniNeboObsahuDleProhlaseniVyrobce" minOccurs="0">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="KodLaboratore" type="xs:int" />
                    <xs:element name="CisloProtokolu" type="xs:decimal" />
                    <xs:element name="DatumAnalyzy" type="xs:date" />
                    <xs:element name="KoncentracePCBVNaplni" minOccurs="0">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="PCB28" type="xs:decimal" minOccurs="0" />
                          <xs:element name="PCB52" type="xs:decimal" minOccurs="0" />
                          <xs:element name="PCB101" type="xs:decimal" minOccurs="0" />
                          <xs:element name="PCB138" type="xs:decimal" minOccurs="0" />
                          <xs:element name="PCB153" type="xs:decimal" minOccurs="0" />
                          <xs:element name="PCB180" type="xs:decimal" minOccurs="0" />
                          <xs:element name="Celkem" type="xs:decimal" minOccurs="0" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:all>
                </xs:complexType>
              </xs:element>
              
              <xs:element name="ZarizeniObsahujePCB" type="xs:string" minOccurs="0" />
              <xs:element name="ZaSpravnost" type="xs:string" minOccurs="0" />
            </xs:all>
          </xs:complexType>
        </xs:element>
        
        <xs:element name="List3" minOccurs="0">
          <xs:complexType>
            <xs:all>
            
              <xs:element name="ProtokolOOdstraneni" minOccurs="0">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="DatumNakladani" type="xs:date" minOccurs="0" />
                    <xs:element name="HmotnostZarizeni" type="xs:decimal" minOccurs="0" />
                    <xs:element name="ZTohoKapalina" type="xs:decimal" minOccurs="0" />
                    <xs:element name="PredaniOpravneneOsobeK" type="xs:string" minOccurs="0" />
                    <xs:element name="SpecifikaceJinehoZpusobuNakladani" type="xs:string" minOccurs="0" />
                  </xs:all>
                </xs:complexType>
              </xs:element>
              
              <xs:element name="OpravnenaOsoba" minOccurs="0">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="OpravnenaOsoba" type="xs:string" minOccurs="0" />
                    <xs:element name="IC" type="ICType" minOccurs="0" />
                    <xs:element name="Obec" type="xs:string" minOccurs="0" />
                    <xs:element name="KodObce" type="xs:string" minOccurs="0" />
                    <xs:element name="Okres" type="xs:string" minOccurs="0" />
                    <xs:element name="KodOkresu" type="xs:string" minOccurs="0" />
                    <xs:element name="Ulice" type="xs:string" minOccurs="0" />
                    <xs:element name="PSC" type="PscType" minOccurs="0" />
                    <xs:element name="TelefonPredvolba" type="xs:string" minOccurs="0" />
                    <xs:element name="Telefon" type="xs:int" minOccurs="0" />
                    <xs:element name="Email" type="xs:string" minOccurs="0" />
                  </xs:all>
                </xs:complexType>
              </xs:element>
              
              <xs:element name="ZarizeniPredal" type="OsobaType" minOccurs="0" />
              <xs:element name="DatumPredani" type="xs:date" minOccurs="0" />
              <xs:element name="ZarizeniPrevzal" type="OsobaType" minOccurs="0" />
              <xs:element name="DatumPrevzeti" type="xs:date" minOccurs="0" />
              <xs:element name="ZaSpravnost" type="xs:string" minOccurs="0" />
            </xs:all>
          </xs:complexType>
        </xs:element>

      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="MetaInfoType">
    <xs:sequence>
      <xs:element name="version" type="xs:nonNegativeInteger" fixed="2010" />
      <xs:element name="revision" type="xs:nonNegativeInteger" fixed="1" />

      <xs:element name="user-agent" type="NotEmptyString" />
      <xs:element name="user-agent-version" type="NotEmptyString" />

      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  
  <xs:simpleType name="NotEmptyStringType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="PscType">
    <xs:restriction base="xs:nonNegativeInteger">
      <xs:pattern value="\d{5}" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="ICType">
    <xs:restriction base="xs:string">
      <xs:pattern value="\d{8}" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="OsobaType">
    <xs:all>
      <xs:element name="Jmeno" type="NotEmptyStringType" />
      <xs:element name="Prijmeni" type="NotEmptyStringType" />
    </xs:all>
  </xs:complexType>

</xs:schema>
