<?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_ODPRZ_EL">
    <xs:complexType>
      <xs:sequence>
      
        <xs:element name="meta-info" type="MetaInfoType" />

        <xs:element name="VykazovanyRok" type="xs:int" fixed="2010" />
        <xs:element name="VyrobceElektrozarizeni">
          <xs:complexType>
            <xs:all>
              <xs:element name="Typ" type="NotEmptyStringType" />
              <xs:element name="EvidencniCisloVyrobce" type="NotEmptyStringType" />
              <xs:element name="EvidencniCisloProvozovatele" type="NotEmptyStringType" />
              <xs:element name="IC" type="ICType" />
              <xs:element name="VyrobceElektrozarizeniNazev" type="NotEmptyStringType" />
              <xs:element name="Ulice" type="xs:string" minOccurs="0" />
              <xs:element name="Obec" type="NotEmptyStringType" />
              <xs:element name="PSC" type="PscType" />
              <xs:element name="KodORP" type="xs:int" minOccurs="0" />
              <xs:element name="ICZUJ" type="xs:int" minOccurs="0" />
              <xs:element name="OKEC" type="xs:string" minOccurs="0" />
              <xs:element name="EvidenciVyplnil" type="NotEmptyStringType" />
              <xs:element name="Telefon" type="NotEmptyStringType" />
              <xs:element name="Fax" type="xs:string" minOccurs="0" />
              <xs:element name="Email" type="NotEmptyStringType" />
              <xs:element name="DatumVyhotoveniDokladu" type="xs:date" />
              <xs:element name="ZaSpravnost" type="NotEmptyStringType" />
            </xs:all>
          </xs:complexType>
        </xs:element>

        <xs:element name="Tabulka1">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Skupina1" type="Tab1SkupinaType" minOccurs="0" />
              <xs:element name="Skupina2" type="Tab1SkupinaType" minOccurs="0" />
              <xs:element name="Skupina3" type="Tab1SkupinaType" minOccurs="0" />
              <xs:element name="Skupina4" type="Tab1SkupinaType" minOccurs="0" />
              <xs:element name="Skupina5" type="Tab1SkupinaType" minOccurs="0" />
              <xs:element name="Skupina5a" type="Tab1SkupinaType" minOccurs="0" />
              <xs:element name="Skupina6" type="Tab1SkupinaType" minOccurs="0" />
              <xs:element name="Skupina7" type="Tab1SkupinaType" minOccurs="0" />
              <xs:element name="Skupina8" type="Tab1SkupinaType" minOccurs="0" />
              <xs:element name="Skupina9" type="Tab1SkupinaType" minOccurs="0" />
              <xs:element name="Skupina10" type="Tab1SkupinaType" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>

        <xs:element name="Tabulka2a3" minOccurs="0" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>

              <xs:element name="Tabulka2">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="SkupinaElektrozarizeni" type="xs:string" />

                    <xs:element name="MnozstviZpetneOdebranychElektrozarizeniOdSpotrebitelu" minOccurs="0">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="NaSbernychDvorech" type="Tab2MnozstviType" minOccurs="0" />
                          <xs:element name="UPoslednichProdejcu" type="Tab2MnozstviType" minOccurs="0" />
                          <xs:element name="JinyZpusob" type="Tab2MnozstviType" minOccurs="0" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>

                    <xs:element name="MnozstviOddeleneSebranychElektroodpaduOdKonecnychUzivatelu" minOccurs="0">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="NaSbernychDvorech" type="Tab2MnozstviType" minOccurs="0" />
                          <xs:element name="UPoslednichProdejcu" type="Tab2MnozstviType" minOccurs="0" />
                          <xs:element name="UKonecnychUzivatelu" type="Tab2MnozstviType" minOccurs="0" />
                          <xs:element name="JinyZpusob" type="Tab2MnozstviType" minOccurs="0" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    
                    <xs:element name="ZpusobNakladaniSElektrozarizenimi" minOccurs="0">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="OpetovnePouziti" type="Tab2MnozstviType" minOccurs="0" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    
                    <xs:element name="ZpusobNakladaniSElektroodpady" minOccurs="0">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="MaterialoveVyuziti" type="Tab2MnozstviType" minOccurs="0" />
                          <xs:element name="EnergetickeVyuziti" type="Tab2MnozstviType" minOccurs="0" />
                          <xs:element name="Odstraneni" type="Tab2MnozstviType" minOccurs="0" />
                          <xs:element name="OdstraneniSpalovanim" type="Tab2MnozstviType" minOccurs="0" />
                          <xs:element name="JinyZpusobNakladani" type="Tab2MnozstviType" minOccurs="0" />
                          <xs:element name="ZustatekNaSkladuKeDni31ProsinceVykazovanehoRoku" type="Tab2MnozstviType" minOccurs="0" />
                          <xs:element name="VyvozDoZemiEvropskeUnie" type="Tab2MnozstviType" minOccurs="0" />
                          <xs:element name="VyvozMimoZemeEvropskeUnie" type="Tab2MnozstviType" minOccurs="0" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>

              <xs:element name="Tabulka3">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Tabulka3Radek" minOccurs="0" maxOccurs="unbounded">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="ZpusobNakladani" type="xs:string" minOccurs="0" />
                          <xs:element name="PredaneMnozstvi" type="xs:decimal" minOccurs="0" />
                          <xs:element name="IC" type="ICType" minOccurs="0" />
                          <xs:element name="NazevProvozovny" type="xs:string" minOccurs="0" />
                          <xs:element name="SidloProvozovny" type="xs:string" minOccurs="0" />
                          <xs:element name="KodORP" type="xs:int" minOccurs="0" />
                          <xs:element name="ICZUJ" type="xs:int" minOccurs="0" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>

        <xs:element name="Tabulka4">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Tabulka4Radek" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="VyrobceNazev" type="xs:string" minOccurs="0" />
                    <xs:element name="EvidencniCisloVyrobce" type="xs:string" minOccurs="0" />
                    <xs:element name="IC" type="ICType" minOccurs="0" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>

        <xs:element name="Tabulka5">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Skupina1" type="Tab5SkupinaType" />
              <xs:element name="Skupina2" type="Tab5SkupinaType" />
              <xs:element name="Skupina3" type="Tab5SkupinaType" />
              <xs:element name="Skupina4" type="Tab5SkupinaType" />
              <xs:element name="Skupina5" type="Tab5SkupinaType" />
              <xs:element name="Skupina5a" type="Tab5SkupinaType" />
              <xs:element name="Skupina6" type="Tab5SkupinaType" />
              <xs:element name="Skupina7" type="Tab5SkupinaType" />
              <xs:element name="Skupina8" type="Tab5SkupinaType" />
              <xs:element name="Skupina9" type="Tab5SkupinaType" />
              <xs:element name="Skupina10" type="Tab5SkupinaType" />
            </xs:sequence>
          </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:integer">
      <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="Tab1SkupinaType">
    <xs:all>
      <xs:element name="VlastniVyroba" type="Tab1MnozstviType" minOccurs="0" />
      <xs:element name="Dovoz" type="Tab1MnozstviType" minOccurs="0" />
      <xs:element name="Vyvoz" type="Tab1MnozstviType" minOccurs="0" />
    </xs:all>
  </xs:complexType>

  <xs:complexType name="Tab1MnozstviType">
    <xs:all>
      <xs:element name="tuny" type="xs:decimal" minOccurs="0" />
      <xs:element name="ks" type="xs:int" minOccurs="0" />
    </xs:all>
  </xs:complexType>

  <xs:complexType name="Tab2MnozstviType">
    <xs:sequence>
      <xs:element name="tuny" type="xs:decimal" minOccurs="0" />
      <xs:element name="kusy" type="xs:int" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Tab5SkupinaType">
    <xs:all>
      <xs:element name="CelkoveMnozstviZpracovanychElektroodpadu" type="xs:decimal" minOccurs="0" />
      <xs:element name="Vyuziti" type="xs:decimal" minOccurs="0" />
      <xs:element name="OpetovnePouziti" type="xs:decimal" minOccurs="0" />
      <xs:element name="MaterialoveVyuziti" type="xs:decimal" minOccurs="0" />
    </xs:all>
  </xs:complexType>

</xs:schema>
