<?xml version="1.0"?>
<xsd:schema targetNamespace="http://www.ispop.cz" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <xsd:element name="F_IRZ">
    <xsd:complexType>
      <xsd:all>

        <xsd:element name="meta-info" type="MetaInfoType" />

        <xsd:element name="subjekt" type="SubjektType" />
        <xsd:element name="provozovna" type="ProvozovnaType" />
        <xsd:element name="hlaseni" type="HlaseniType" />
        <xsd:element name="cinnosti" type="CinnostiType" />

        <xsd:element name="unikyOvzdusi" type="UnikyOvzdusiType" minOccurs="0"/>
        <xsd:element name="unikyVoda" type="UnikyVodaType" minOccurs="0" />
        <xsd:element name="unikyPuda" type="UnikyPudaType" minOccurs="0" />
        <xsd:element name="prenosyOdpVody" type="PrenosyOdpVodyType" minOccurs="0" />
        <xsd:element name="prenosyOdpady" type="PrenosyOdpadyType" minOccurs="0" />
        <xsd:element name="ostatniOdpady" type="OdpadyType" minOccurs="0" />
        <xsd:element name="nebezpecneOdpady" type="OdpadyType" minOccurs="0" />

      </xsd:all>
    </xsd:complexType>
  </xsd:element>


  <xsd:complexType name="SubjektType">
    <xsd:all>
      <xsd:element name="ic" type="ICType" />
      <xsd:element name="nazev" type="xsd:string" minOccurs="0" />
      <xsd:element name="pravniForma" type="xsd:string" minOccurs="0" />

      <xsd:element name="ulice" type="xsd:string" minOccurs="0"/>
      <xsd:element name="popisne" type="xsd:integer" minOccurs="0" />
      <xsd:element name="orientacni" type="xsd:string" minOccurs="0"/>
      <xsd:element name="castObce" type="xsd:string" minOccurs="0"/>
      <xsd:element name="obec" type="xsd:string" minOccurs="0" />
      <xsd:element name="psc" type="PscType" minOccurs="0" />
      <xsd:element name="cznuts" type="CZNUTSType" minOccurs="0" />
    </xsd:all>
  </xsd:complexType>


  <xsd:complexType name="ProvozovnaType">
    <xsd:all>
      <xsd:element name="icp" type="NotEmptyStringType" />

      <xsd:element name="nazev" type="xsd:string" minOccurs="0" />
      <xsd:element name="jtskX" type="xsd:double" minOccurs="0" />
      <xsd:element name="jtskY" type="xsd:double" minOccurs="0" />
      <xsd:element name="wgsX" type="xsd:double" minOccurs="0" />
      <xsd:element name="wgsY" type="xsd:double" minOccurs="0" />

      <xsd:element name="ulice" type="xsd:string" minOccurs="0"/>
      <xsd:element name="popisne" type="xsd:integer" minOccurs="0" />
      <xsd:element name="orientacni" type="xsd:string" minOccurs="0"/>
      <xsd:element name="castObce" type="xsd:string" minOccurs="0"/>
      <xsd:element name="obec" type="xsd:string" minOccurs="0" />
      <xsd:element name="psc" type="PscType" minOccurs="0" />
      <xsd:element name="cznuts" type="CZNUTSType" minOccurs="0" />

      <xsd:element name="povodi" type="xsd:decimal" />
      <xsd:element name="nace" type="NotEmptyStringType" />
      <xsd:element name="objemVyrobyHodnota" type="xsd:decimal" minOccurs="0"/>
      <xsd:element name="objemVyrobyJednotka" type="xsd:string" minOccurs="0"/>
      <xsd:element name="nazevVyrobku" type="xsd:string" minOccurs="0"/>
      <xsd:element name="pocetZarizeni" type="xsd:decimal" minOccurs="0"/>
      <xsd:element name="provozniHodiny" type="xsd:decimal" minOccurs="0"/>
      <xsd:element name="pocetZamestnancu" type="xsd:decimal" minOccurs="0"/>
      <xsd:element name="sdeleniCZ" type="xsd:string" minOccurs="0"/>
      <xsd:element name="sdeleniEN" type="xsd:string" minOccurs="0"/>
    </xsd:all>
  </xsd:complexType>

  <xsd:complexType name="HlaseniType">
    <xsd:all>
      <xsd:element name="kontaktniOsoba" type="NotEmptyStringType" />
      <xsd:element name="email" type="NotEmptyStringType" />
      <xsd:element name="telefon" type="NotEmptyStringType" />
      <xsd:element name="fax" type="xsd:string" minOccurs="0"/>
      <xsd:element name="datum" type="xsd:date"/>
      <xsd:element name="rok" type="xsd:integer" fixed="2010" />
    </xsd:all>
  </xsd:complexType>


  <xsd:complexType name="CinnostiType">
    <xsd:all>
      <xsd:element name="jeEPRTR" type="xsd:boolean" />

      <xsd:element name="cinnostiEPRTR" minOccurs="0">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="cinnostEPRTR" minOccurs="0" maxOccurs="unbounded">
              <xsd:complexType>
                <xsd:sequence>
                  <xsd:element name="hlavni" type="xsd:boolean" />
                  <xsd:element name="kodCinnosti" type="NotEmptyStringType" />
                  <xsd:element name="pocet" type="xsd:decimal" />
                </xsd:sequence>
              </xsd:complexType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>

      <xsd:element name="cinnostiOstatni" minOccurs="0">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="cinnostOstatni" minOccurs="0" maxOccurs="unbounded">
              <xsd:complexType>
                <xsd:sequence>
                  <xsd:element name="nazevCinnosti" type="NotEmptyStringType" />
                  <xsd:element name="pocet" type="xsd:decimal" />
                </xsd:sequence>
              </xsd:complexType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>

    </xsd:all>
  </xsd:complexType>
	


  <xsd:complexType name="UnikyOvzdusiType">
    <xsd:sequence>
      <xsd:element name="unik" type="UnikOvzdusiType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="UnikyVodaType">
    <xsd:sequence>
      <xsd:element name="unik" type="UnikVodaType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="UnikyPudaType">
    <xsd:sequence>
      <xsd:element name="unik" type="UnikPudaType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="PrenosyOdpVodyType">
    <xsd:sequence>
      <xsd:element name="prenos" type="PrenosOdpVodyType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="PrenosyOdpadyType">
    <xsd:sequence>
      <xsd:element name="prenos" type="PrenosOdpadyType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="OdpadyType">
    <xsd:sequence>
      <xsd:element name="prenos" type="OdpadType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
	


  <xsd:complexType name="UnikOvzdusiType">
    <xsd:all>
      <xsd:element name="latka" type="xsd:decimal" />
      <xsd:element name="hodnota" type="xsd:decimal" />
      <xsd:element name="havarijni" type="xsd:decimal" />
      <xsd:element name="metoda" type="MetodaType" />
      <xsd:element name="metodiky" minOccurs="0">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="metodika" type="MetodikaType" minOccurs="0" maxOccurs="unbounded" />
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:all>
  </xsd:complexType>

  <xsd:complexType name="UnikVodaType">
    <xsd:all>
      <xsd:element name="latka" type="xsd:decimal" />
      <xsd:element name="hodnota" type="xsd:decimal" />
      <xsd:element name="havarijni" type="xsd:decimal" />
      <xsd:element name="metoda" type="MetodaType" />
      <xsd:element name="metodiky" minOccurs="0">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="metodika" type="MetodikaType" minOccurs="0" maxOccurs="unbounded" />
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="seznamPovodi">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="povodi" maxOccurs="unbounded">
              <xsd:complexType>
                <xsd:all>
                  <xsd:element name="jmeno" type="NotEmptyStringType"/>
                  <xsd:element name="ricniKilometr" type="xsd:decimal"/>
                </xsd:all>
              </xsd:complexType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:all>
  </xsd:complexType>

  <xsd:complexType name="UnikPudaType">
    <xsd:all>
      <xsd:element name="latka" type="xsd:decimal" />
      <xsd:element name="cinnost" type="NotEmptyStringType" />
      <xsd:element name="hodnota" type="xsd:decimal" />
      <xsd:element name="havarijni" type="xsd:decimal" />
      <xsd:element name="metoda" type="MetodaType" />
      <xsd:element name="metodiky" minOccurs="0">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="metodika" type="MetodikaType" minOccurs="0" maxOccurs="unbounded" />
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:all>
  </xsd:complexType>

  <xsd:complexType name="PrenosOdpVodyType">
    <xsd:all>
      <xsd:element name="latka" type="xsd:decimal" />
      <xsd:element name="hodnota" type="xsd:decimal" />
      <xsd:element name="metoda" type="MetodaType" />
      <xsd:element name="metodiky" minOccurs="0">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="metodika" type="MetodikaType" minOccurs="0" maxOccurs="unbounded" />
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:all>
  </xsd:complexType>

  <xsd:complexType name="PrenosOdpadyType">
    <xsd:all>
      <xsd:element name="latka" type="xsd:decimal" />
      <xsd:element name="hodnota" type="xsd:decimal" />
      <xsd:element name="metoda" type="MetodaType" />
      <xsd:element name="zpracovani" type="ZpracovaniType" />
      <xsd:element name="metodiky" minOccurs="0">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="metodika" type="MetodikaType" minOccurs="0" maxOccurs="unbounded" />
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="nazevOsoby" type="NotEmptyStringType" />
      <xsd:element name="adresaOsoby" type="NotEmptyStringType" />
    </xsd:all>
  </xsd:complexType>

  <xsd:complexType name="OdpadType">
    <xsd:all>
      <xsd:element name="hodnota" type="xsd:decimal" />
      <xsd:element name="zpracovani" type="ZpracovaniType" />
      <xsd:element name="mimoCR" type="xsd:boolean" />
      <xsd:element name="metoda" type="MetodaType" />
      <xsd:element name="metodikaKod" type="xsd:string" minOccurs="0" />
      <xsd:element name="pouzitaMetoda" type="xsd:string" minOccurs="0" />
      <xsd:element name="nazevOsoby" type="NotEmptyStringType" />
      <xsd:element name="adresaOsoby" type="NotEmptyStringType" />
      <xsd:element name="lokalita" type="xsd:string" minOccurs="0" />
      <xsd:element name="stat" type="xsd:string" minOccurs="0" />
    </xsd:all>
  </xsd:complexType>

  <xsd:simpleType name="MetodaType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="M"/>
      <xsd:enumeration value="C"/>
      <xsd:enumeration value="E"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ZpracovaniType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="D"/>
      <xsd:enumeration value="R"/>
    </xsd:restriction>
  </xsd:simpleType>


  <xsd:complexType name="MetodikaType">
    <xsd:sequence>
      <xsd:element name="kategorie" type="NotEmptyStringType" />
      <xsd:element name="kod1" type="NotEmptyStringType" />
      <xsd:element name="kod2" type="NotEmptyStringType" />
      <xsd:element name="popis" type="xsd:string" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="MetaInfoType">
    <xsd:sequence>
      <xsd:element name="version" type="xsd:nonNegativeInteger" fixed="2010" />
      <xsd:element name="revision" type="xsd:nonNegativeInteger" fixed="1" />

      <xsd:element name="user-agent" type="NotEmptyString" />
      <xsd:element name="user-agent-version" type="NotEmptyString" />

      <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="NotEmptyStringType">
    <xsd:restriction base="xsd:string">
      <xsd:minLength value="1"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="PscType">
    <xsd:restriction base="xsd:nonNegativeInteger">
      <xsd:pattern value="\d{5}" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ICType">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="\d{8}" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="CZNUTSType">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="CZ\d{3}\w" />
    </xsd:restriction>
  </xsd:simpleType>
</xsd:schema>

