<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://www.ispop.cz" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="metainfo.ispop.cz">
  <xs:annotation id="DruhOsoby" fn:field="Druh osoby"/>

  <xs:annotation id="Prijmeni" fn:field="Příjmení"/>
  <xs:annotation id="Jmeno" fn:field="Jméno"/>
  <xs:annotation id="Narozeni" fn:field="Datum narození"/>
  <xs:annotation id="Obcanstvi" fn:field="Státní příslušnost"/>
  <xs:annotation id="Ulice" fn:field="Ulice"/>
  <xs:annotation id="CP" fn:field="Číslo popisné"/>
  <xs:annotation id="Obec" fn:field="Obec"/>
  <xs:annotation id="PSC" fn:field="PSČ"/>
  <!--xs:annotation id="Stat" fn:field="Stát"/ kolize, predpokladame, ze zde chyba prakticky nemuze vzniknout... -->
  <xs:annotation id="ICO" fn:field="IČ"/>
  <xs:annotation id="DIC" fn:field="DIČ"/>

  <xs:annotation id="Nazev" fn:field="Název"/>
  <xs:annotation id="Forma" fn:field="Právní forma"/>
  <xs:annotation id="IC" fn:field="IČ"/>
  <xs:annotation id="OdpovedPracovnik" fn:field="Opovědný pracovník"/>

  <xs:annotation id="Tel" fn:field="Telefon"/>
  <xs:annotation id="Fax" fn:field="Fax"/>
  <xs:annotation id="Email" fn:field="E-mail"/>
  <xs:annotation id="Certifikaty" fn:field="Certifikát"/>
  <xs:annotation id="CisloCertif" fn:field="Číslo certifikátu"/>
  <xs:annotation id="DatumCertif" fn:field="Certifikát ze dne"/>
  <xs:annotation id="Rok" fn:field="V roce"/>

  <xs:annotation id="Latka" fn:field="Látka (označení, vzorec)"/>
  <xs:annotation id="Mnozstvi" fn:field="Množství"/>
  <xs:annotation id="Stat" fn:field="Získáno od (příp. Členský stát EU)"/>
  <xs:annotation id="ZpusobNakladani" fn:field="Způsob dalšího nakládání"/>

  <xs:annotation id="Datum" fn:field="Datum"/>
  <xs:annotation id="verze" fn:field="Verze dokumentu"/>
  <xs:annotation id="revize" fn:field="Revize dokumentu"/>

  <xs:element name="F_OVZ_RL">
    <xs:complexType>
      <xs:sequence>
      
        <xs:element name="meta-info" type="MetaInfoType" />

        <xs:element name="Osoba">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="DruhOsoby" type="NotEmptyStringType" />

              <xs:element name="FyzickaOS" minOccurs="0">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="Prijmeni" type="xs:string" minOccurs="0" />
                    <xs:element name="Jmeno" type="xs:string" minOccurs="0" />
                    <xs:element name="Narozeni" type="xs:date" minOccurs="0" />
                    <xs:element name="Obcanstvi" type="xs:string" minOccurs="0" />
                    <xs:element name="Ulice" type="xs:string" minOccurs="0" />
                    <xs:element name="CP" type="xs:string" minOccurs="0" />
                    <xs:element name="Obec" type="xs:string" minOccurs="0" />
                    <xs:element name="PSC" type="PscType" minOccurs="0" />
                    <xs:element name="Stat" type="xs:string" minOccurs="0" />
                    <xs:element name="ICO" type="ICType" minOccurs="0" />
                    <xs:element name="DIC" type="xs:string" minOccurs="0" />
                  </xs:all>
                </xs:complexType>
              </xs:element>

              <xs:element name="PravnickaOS" minOccurs="0">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="Nazev" type="xs:string" minOccurs="0" />
                    <xs:element name="Forma" type="xs:string" minOccurs="0" />
                    <xs:element name="Ulice" type="xs:string" minOccurs="0" />
                    <xs:element name="CP" type="xs:string" minOccurs="0" />
                    <xs:element name="Obec" type="xs:string" minOccurs="0" />
                    <xs:element name="PSC" type="PscType" minOccurs="0" />
                    <xs:element name="Stat" type="xs:string" minOccurs="0" />
                    <xs:element name="IC" type="ICType" minOccurs="0" />
                    <xs:element name="DIC" type="xs:string" minOccurs="0" />
                    <xs:element name="OdpovedPracovnik" type="xs:string" minOccurs="0" />
                  </xs:all>
                </xs:complexType>
              </xs:element>

              <xs:element name="Tel" type="xs:string" minOccurs="0" />
              <xs:element name="Fax" type="xs:string" minOccurs="0" />
              <xs:element name="Email" type="NotEmptyStringType" />
              <xs:element name="Certifikaty" type="xs:string" minOccurs="0" />
              <xs:element name="CisloCertif" type="xs:string" minOccurs="0" />
              <xs:element name="DatumCertif" type="xs:date" minOccurs="0" />
              <xs:element name="Rok" type="xs:int" />
              <xs:element name="Zobrazeni">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="ZiskFluorPlyn" type="xs:boolean" />
                    <xs:element name="PredFluorPlyn" type="xs:boolean" />
                    <xs:element name="ZneskFluorPlyn" type="xs:boolean" />
                    <xs:element name="PrvniUvedeniRegul" type="xs:boolean" />
                    <xs:element name="ZnovuZiskRegul" type="xs:boolean" />
                    <xs:element name="ZnovuZiskRegulRecyk" type="xs:boolean" />
                    <xs:element name="RecyklaceRegul" type="xs:boolean" />
                    <xs:element name="RegeneraceRegul" type="xs:boolean" />
                    <xs:element name="ZneskodnRegul" type="xs:boolean" />
                  </xs:all>
                </xs:complexType>
              </xs:element>
              <xs:element name="Datum" type="xs:date" />

            </xs:sequence>
          </xs:complexType>
        </xs:element>

        <xs:element name="Tabulky">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Tab2a" type="TabulkaLatkaStatType" minOccurs="0" />
              <xs:element name="Tab2b" type="TabulkaLatkaStatType" minOccurs="0" />
              <xs:element name="Tab2c" type="TabulkaLatkaStatType" minOccurs="0" />
              <xs:element name="Tab2d1" type="TabulkaLatkaStatType" minOccurs="0" />
              <xs:element name="Tab2d2" type="TabulkaLatkaZpusobType" minOccurs="0" />
              <xs:element name="Tab2d2a" type="TabulkaLatkaZpusobType" minOccurs="0" />
              <xs:element name="Tab2d3" type="TabulkaLatkaZpusobType" minOccurs="0" /> 
              <xs:element name="Tab2d4" type="TabulkaLatkaZpusobType" minOccurs="0" />
              <xs:element name="Tab2d5" type="TabulkaLatkaStatType" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>

      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="TabulkaLatkaStatType">
    <xs:sequence>
      <xs:element name="Zaznam" type="ZaznamLatkaStatType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="ZaznamLatkaStatType">
    <xs:sequence>
      <xs:element name="Latka" type="xs:string" />
      <xs:element name="Mnozstvi" type="xs:decimal" />
      <xs:element name="Stat" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  
  <xs:complexType name="TabulkaLatkaZpusobType">
    <xs:sequence>
      <xs:element name="Zaznam" type="ZaznamLatkaZpusobType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="ZaznamLatkaZpusobType">
    <xs:sequence>
      <xs:element name="Latka" type="xs:string" />
      <xs:element name="Mnozstvi" type="xs:decimal" />
      <xs:element name="ZpusobNakladani" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  
  <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:decimal">
      <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:schema>