<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">

<xs:element name="izvjestaj_dnevni">
 <xs:complexType>
 <xs:sequence>
  <xs:element ref="zaglavlje"/>
  <xs:element ref="pr_gn_cp"/> 
  <xs:element ref="pr_gn_ur"/> 
  <xs:element ref="st_gn"/> 
  <xs:element ref="ob"/> 
  <xs:element ref="pr_ur"/> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  <xs:element name="zaglavlje">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="obveznik_oib" type="stOib"/>
        <xs:element name="datum" type="xs:date"/>
        <xs:element name="valuta_domicilna" type="stDomicilnaValuta"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  
<!-- 1.1 -->
  <xs:element name="pr_gn_cp">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="podaci_1a" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="podaci_1a">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="cp_1a" minOccurs="1" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="cp_1a">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="tran_pj" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="cp_sif" type="stString50" use="required"/>
      <xs:attribute name="izvor_oib" type="stOib" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="tran_pj">
    <xs:complexType>
        <xs:attribute name="uinLOK" type="stUplIsplNeobr_lok" use="required"/>
        <xs:attribute name="izn" type="stIznos" use="required"/>
        <xs:attribute name="br" type="xs:positiveInteger" use="required"/>
    </xs:complexType>
  </xs:element>
  
<!-- 1.2 -->
  <xs:element name="pr_gn_ur">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="podaci_1b" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="podaci_1b">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="cp_1b" minOccurs="1" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="cp_1b">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="tran_ur" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="cp_sif" type="stString50" use="required"/>
      <xs:attribute name="izvor_oib" type="stOib" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="tran_ur">
    <xs:complexType>
        <xs:attribute name="uiPN" type="stUplIspl_potrNepotr" use="required"/>
        <xs:attribute name="izn" type="stIznos" use="required"/>
        <xs:attribute name="br" type="xs:positiveInteger" use="required"/>
    </xs:complexType>
  </xs:element>

<!-- 2 -->
  <xs:element name="st_gn">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="podaci_2" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="podaci_2">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="cp_2" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="cp_2">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="stanje" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="cp_sif" type="stString50" use="required"/>
      <xs:attribute name="izvor_oib" type="stOib" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="stanje">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="apoen" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="nov_vr" type="stVrstaNovca" use="required"/>
      <xs:attribute name="nov_kv" type="stKvalitetaNovca" use="required"/>
    </xs:complexType>
  </xs:element>
  
<!-- 3 -->
  <xs:element name="ob">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="podaci_3" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="podaci_3">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="cp_3" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="cp_3">
    <xs:complexType>
      <xs:sequence>
		  <xs:element name="uredaj" maxOccurs="unbounded">
			<xs:complexType>
			  <xs:sequence>
				<xs:element ref="kolicina" maxOccurs="unbounded"/>
			  </xs:sequence>
			  <xs:attribute name="ur_ser" type="xs:string" use="required"/>
			  <xs:attribute name="ur_vr" type="stVrstaUredaja" use="required"/>
			  <xs:attribute name="lok" type="stTipLokacije" use="required"/>
			  <xs:attribute name="gc" type="xs:boolean" use="optional"/>
			</xs:complexType>
		  </xs:element>
      </xs:sequence>
      <xs:attribute name="cp_sif" type="stString50" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="kolicina">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="apoen" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="nov_vr" type="stVrstaNovca" use="required"/>
      <xs:attribute name="nov_kv" type="stKvalitetaNovca" use="required"/>
    </xs:complexType>
  </xs:element>
  
<!-- 4 -->
  <xs:element name="pr_ur">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="podaci_4" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="podaci_4">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="cp_4" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="cp_4">
    <xs:complexType>
      <xs:sequence>
		  <xs:element name="uredaj" maxOccurs="unbounded">
			<xs:complexType>
			  <xs:sequence>
				<xs:element ref="promet" maxOccurs="unbounded" minOccurs="1"/>
			  </xs:sequence>
			  <xs:attribute name="ur_ser" type="xs:string" use="required"/>
			  <xs:attribute name="ur_vr" type="stVrstaUredaja" use="required"/>
			  <xs:attribute name="lok" type="stTipLokacije" use="required"/>
			</xs:complexType>
		  </xs:element>
      </xs:sequence>
      <xs:attribute name="cp_sif" type="stString50" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="promet">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="apoen" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="nov_vr" type="stVrstaNovca" use="required"/>
      <xs:attribute name="iz" type="stIzdavanjeZaprimanje" use="required"/>
    </xs:complexType>
  </xs:element>
  

<!-- complexType -->  
  <xs:element name="apoen">
    <xs:complexType>
        <xs:attribute name="kom" type="xs:positiveInteger" use="required"/>
        <xs:attribute name="vrij" type="stApoen" use="required"/>
    </xs:complexType>
  </xs:element>
  
<!-- simpleType -->  
 <xs:simpleType name="stString50">
    <xs:restriction base="xs:string">
      <xs:maxLength value="50"/>
    </xs:restriction>
 </xs:simpleType>

  <xs:simpleType name="stDomicilnaValuta">
    <xs:restriction base="xs:string">
      <xs:pattern value="HRK"/>	<!-- [A-Z]{3} -->
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="stIznos">
    <xs:restriction base="xs:string">
      <xs:pattern value="[1-9][0-9]*,\d\d|0,\d\d"/>   
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="stOib">
    <xs:restriction base="xs:string">
      <xs:pattern value="\d{11}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="stUplIsplNeobr_lok">
    <xs:restriction base="xs:string">
      <xs:pattern value="[ui](NPS|POS|GOC|BNK)|n(TRZ|GNP)"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="stUplIspl_potrNepotr">
    <xs:restriction base="xs:string">
      <xs:pattern value="[ui](PO|NP)"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="stVrstaNovca">
    <xs:restriction base="xs:string">
      <xs:pattern value="N|K"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="stKvalitetaNovca">
    <xs:restriction base="xs:string">
      <xs:pattern value="PRI|POH|OST"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="stVrstaUredaja">
    <xs:restriction base="xs:string">
      <xs:pattern value="uN|rNk|kuN|iN|iK|iB|oN|aN|rNz|uiN|uKo|uKz|rKo|rKza|rKz|isoK|sK|bK"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="stTipLokacije">
    <xs:restriction base="xs:string">
      <xs:pattern value="PJ|ZP|OP"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="stIzdavanjeZaprimanje">
    <xs:restriction base="xs:string">
      <xs:pattern value="IZD|ZAP"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="stApoen">
    <xs:restriction base="xs:string">
      <xs:pattern value="[1-9][0-9]*|0,\d\d"/>   
    </xs:restriction>
  </xs:simpleType>

  
  
  
</xs:schema>
