﻿<?xml version="1.0" encoding="UTF-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="AjpesDokument">
    <xs:annotation>
      <xs:documentation>root</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Ident" type="IdentType" />
        <xs:element name="Zavezanec" type="ZavezanecType" maxOccurs="unbounded">
          <xs:annotation>
            <xs:documentation>Za vsekega zavezanca je potrebno kreirati po en segment "Zavezanec". V eni datoteki je lahko več segmentov "Zavezanec". </xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="AopType">
    <xs:sequence>
      <xs:element ref="P" />
    </xs:sequence>
    <xs:attribute name="id" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\d{3}" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AopPodType">
    <xs:sequence>
      <xs:element ref="P" />
    </xs:sequence>
    <xs:attribute name="id" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\d{3}" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:element name="Datum" type="xs:date">
    <xs:annotation>
      <xs:documentation>Datum posredovanja datoteke, v obliki LLLL-MM-DD</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="DavcnaStevilka">
    <xs:annotation>
      <xs:documentation>Davčna številka zavezanca</xs:documentation>
    </xs:annotation>
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:pattern value="\d{8}" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Dejavnost">
    <xs:annotation>
      <xs:documentation>Šifra dejavnosti zavezanca/podenote</xs:documentation>
    </xs:annotation>
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="1" />
        <xs:maxLength value="6" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:complexType name="DelovnoMestoType">
    <xs:sequence>
      <xs:element ref="Sifra" />
      <xs:element ref="SteviloZaposlenih" />
      <xs:element ref="ZnesekA" />
      <xs:element ref="ZnesekB" />
      <xs:element ref="ZnesekC" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="IdentType">
    <xs:annotation>
      <xs:documentation>Identifikacija pošiljatelja</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="Datum" />
      <xs:element ref="Ura" />
      <xs:element ref="NacinPredlozitve" minOccurs="0" />
      <xs:element ref="VsePravice" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="vrsta" type="xs:string" use="required" fixed="PLACE">
      <xs:annotation>
        <xs:documentation>Konstanta: PLACE</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:element name="Ime">
    <xs:annotation>
      <xs:documentation>Ime zavezanca/podenote</xs:documentation>
    </xs:annotation>
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="2" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="MaticnaStevilka">
    <xs:annotation>
      <xs:documentation>10 mestna matična številka zavezanca/podenote</xs:documentation>
    </xs:annotation>
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:pattern value="\d{10}" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="NacinPredlozitve" type="xs:string">
    <xs:annotation>
      <xs:documentation>Neobvezen element. Besedilo: XML datoteka</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="NajvisjaPlaca_DelovnoMesto" type="xs:positiveInteger">
    <xs:annotation>
      <xs:documentation>Šifra delovnega mesta, na katerem je bila izplačana najvišja plača. Iz šifranta: http://www.ajpes.si/docdir/PLACE-Seznam_delovnih_mest.doc</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="NajvisjaPlaca_ZnesekA" type="xs:decimal">
    <xs:annotation>
      <xs:documentation>Znesek najvišje bruto izplačane plače v poročevalskem obdobju (mesecu)</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="NajvisjaPlaca_ZnesekB" type="xs:decimal" />
  <xs:element name="NajvisjaPlaca_ZnesekC" type="xs:decimal" />
  <xs:element name="Obcina">
    <xs:annotation>
      <xs:documentation>Trimestna številka občine enote oziroma podenote</xs:documentation>
    </xs:annotation>
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:pattern value="\d{3}" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:complexType name="ObrazciType">
    <xs:sequence>
      <xs:element name="Obrazec1a" type="Obrazec1aType" minOccurs="0" />
      <xs:element name="Obrazec" type="ObrazecType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ObrazciPodType">
    <xs:sequence>
      <xs:element name="ObrazecPod" type="ObrazecPodType" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ObrazecType">
    <xs:sequence>
      <xs:element name="Aop" type="AopType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="id" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:NMTOKEN">
          <xs:enumeration value="obr1_zm" />
          <xs:enumeration value="obr3_reg" />
          <xs:enumeration value="obr_strul" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="mesec" use="required">
      <xs:annotation>
        <xs:documentation>Za kateri mesec so podatki. Vrednosti 1-12
Pri obrazcu obr1_zm se poroča za en mesec nazaj, 
pri obrazcu obr3_reg pa za tekoči mesec.
</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:int">
          <xs:minInclusive value="1" />
          <xs:maxInclusive value="12" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="leto" use="required">
      <xs:annotation>
        <xs:documentation>Za katero leto so podatki.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\d{4}" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="sklopi" use="optional">
      <xs:annotation>
        <xs:documentation>Poljuben niz do dolžine 3 znakov sestavljen iz A, B in C. Določi se, glede na to kateri podatki (AOP-ji) se poročajo. Povezava med sklopi in AOPji je naslednja:
•	Sklop A:  AOP001 – AOP009, AOP024 – AOP028
•	Sklop B:  AOP010 – AOP017, AOP024 – AOP028
•	Sklop C:  AOP018 – AOP023, AOP024 – AOP028
</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="[A-C]{1,3}" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="stevilkaRegresa" use="optional">
      <xs:annotation>
        <xs:documentation>Zaporedna številka regresa (od 1 do 12)</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:int">
          <xs:minInclusive value="1" />
          <xs:maxInclusive value="12" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="Obrazec1aType">
    <xs:sequence>
      <xs:element ref="NajvisjaPlaca_DelovnoMesto" />
      <xs:element ref="NajvisjaPlaca_ZnesekA" />
      <xs:element ref="NajvisjaPlaca_ZnesekB" />
      <xs:element ref="NajvisjaPlaca_ZnesekC" />
      <xs:element ref="Skupaj_ZnesekA" />
      <xs:element ref="Skupaj_ZnesekB" />
      <xs:element ref="Skupaj_ZnesekC" />
      <xs:element name="DelovnoMesto" type="DelovnoMestoType" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="id" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:NMTOKEN">
          <xs:enumeration value="obr1_a" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="mesec" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:integer">
          <xs:minInclusive value="1" />
          <xs:maxInclusive value="12" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="leto" type="xs:string" use="required" />
  </xs:complexType>
  <xs:complexType name="ObrazecPodType">
    <xs:sequence>
      <xs:element name="AopPod" type="AopPodType" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="id" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:NMTOKEN">
          <xs:enumeration value="obr1_zm" />
          <xs:enumeration value="obr_strul" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="mesec" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:int">
          <xs:minInclusive value="1" />
          <xs:maxInclusive value="12" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="leto" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\d{4}" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="sklopi" use="optional">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="[A-C]{1,3}" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:element name="OdgovornaOseba">
    <xs:annotation>
      <xs:documentation>Oseba odgovorna za sestavo obrazca</xs:documentation>
    </xs:annotation>
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="2" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:complexType name="OsnovniPodatkiType">
    <xs:sequence>
      <xs:element ref="SifUpor" />
      <xs:element ref="MaticnaStevilka" />
      <xs:element ref="DavcnaStevilka" />
      <xs:element ref="Dejavnost" />
      <xs:element ref="Ime" />
      <xs:element ref="Racun" />
      <xs:element ref="Pogodba" />
      <xs:element ref="Sedez" />
      <xs:element ref="OdgovornaOseba" />
      <xs:element ref="TelefonskaStevilka" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OsnovniPodatkiPodType">
    <xs:sequence>
      <xs:element ref="SifUpor" />
      <xs:element ref="MaticnaStevilka" />
      <xs:element ref="Dejavnost" />
      <xs:element ref="Ime" />
      <xs:element ref="Sedez" />
      <xs:element ref="Obcina" />
      <xs:element ref="Status" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="P" type="xs:decimal">
    <xs:annotation>
      <xs:documentation>Podatke vpisujemo na 2 decimalni mesti. Decimalno ločilo je pika.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="PodenotaType">
    <xs:sequence>
      <xs:element name="OsnovniPodatkiPod" type="OsnovniPodatkiPodType" />
      <xs:element name="ObrazciPod" type="ObrazciPodType" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PodenoteType">
    <xs:sequence>
      <xs:element name="Podenota" type="PodenotaType" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Pogodba">
    <xs:annotation>
      <xs:documentation>Številka kolektivne pogodbe, po seznamu: http://www.ajpes.si/docdir/sifrantkolektivnihpogodb.doc</xs:documentation>
    </xs:annotation>
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:length value="3" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:complexType name="PoslovniSubjektType">
    <xs:sequence>
      <xs:element ref="MaticnaStevilka" />
      <xs:element ref="StatusPorocanja" />
      <xs:element ref="StatusPorocanjaOpis" minOccurs="0" />
      <xs:element name="SesObrazec" type="SesObrazecType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Racun">
    <xs:annotation>
      <xs:documentation>Številka računa s katerega se izplačuje plača</xs:documentation>
    </xs:annotation>
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:pattern value="\d{15}" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Sedez">
    <xs:annotation>
      <xs:documentation>Sedež zavezanca/podenote (ulica, hišna številka in kraj)</xs:documentation>
    </xs:annotation>
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="2" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:complexType name="SesAnketaType">
    <xs:sequence>
      <xs:element name="PoslovniSubjekt" type="PoslovniSubjektType" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute ref="leto" use="required" />
  </xs:complexType>
  <xs:complexType name="SesObrazecType">
    <xs:sequence>
      <xs:element name="Aop" type="AopType" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute ref="stEmso" use="required" />
    <xs:attribute ref="dtZacetka" use="optional" />
  </xs:complexType>
  <xs:element name="SifUpor">
    <xs:annotation>
      <xs:documentation>5 mestna šifra proračunskega uporabnika (drugače: 00000)</xs:documentation>
    </xs:annotation>
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:pattern value="\d{5}" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Sifra" type="xs:positiveInteger">
    <xs:annotation>
      <xs:documentation>Šifra delovnega mesta iz šifranta: http://www.ajpes.si/docdir/PLACE-Seznam_delovnih_mest.doc</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="Skupaj_ZnesekA" type="xs:decimal">
    <xs:annotation>
      <xs:documentation>Seštevek vseh zneskov DelavnoMesto/ZnesekA</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="Skupaj_ZnesekB" type="xs:decimal" />
  <xs:element name="Skupaj_ZnesekC" type="xs:decimal" />
  <xs:element name="Status">
    <xs:annotation>
      <xs:documentation>dvomestna številka statusa podenote iz seznama: http://www.ajpes.si/docdir/place_statusi_podenot.doc</xs:documentation>
    </xs:annotation>
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:pattern value="\d{2}" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="StatusPorocanja">
    <xs:annotation>
      <xs:documentation>1 ali 2</xs:documentation>
    </xs:annotation>
    <xs:simpleType>
      <xs:restriction base="xs:integer">
        <xs:minInclusive value="1" />
        <xs:maxInclusive value="2" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="StatusPorocanjaOpis" type="xs:string">
    <xs:annotation>
      <xs:documentation>opis statusa porocanja</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="SteviloZaposlenih" type="xs:decimal">
    <xs:annotation>
      <xs:documentation>Število oseb na posameznem delovnem mestu, ki so prejele plačo</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="TelefonskaStevilka">
    <xs:annotation>
      <xs:documentation>Telefon odgovorne osebe</xs:documentation>
    </xs:annotation>
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="7" />
        <xs:maxLength value="30" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Ura" type="xs:time">
    <xs:annotation>
      <xs:documentation>Ura posredovanja datoteke, v obliki HH:mm:SS</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="VsePravice" type="xs:string">
    <xs:annotation>
      <xs:documentation>Neobvezen element. Besedilo: VSE PRAVICE AJPES 2005</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="ZavezanecType">
    <xs:sequence>
      <xs:element name="OsnovniPodatki" type="OsnovniPodatkiType">
        <xs:annotation>
          <xs:documentation>Segment vsebuje osnovne podatke o zavezancu. Vsa polja so obvezna</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Obrazci" type="ObrazciType" minOccurs="0" />
      <xs:element name="Podenote" type="PodenoteType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Segment "Podenote" se izpolnjuje v primeru, da ima zavezanec več podenot. Segment vsebuje poljubno število podsegmentov "Podenota".
V primeru, da ima zavezanec podenote, mora biti matična številka glavne enote vnešena kot ena od podenot. 
</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SesAnketa" type="SesAnketaType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ZnesekA" type="xs:decimal">
    <xs:annotation>
      <xs:documentation>Skupni znesek bruto izplačanih plač za posamezno delovno mesto</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="ZnesekB" type="xs:decimal" />
  <xs:element name="ZnesekC" type="xs:decimal" />
  <xs:attribute name="stEmso">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:pattern value="[0-9]{13}" />
      </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="dtZacetka" type="xs:date" />
  <xs:attribute name="leto" type="xs:gYear">
    <xs:annotation>
      <xs:documentation>leto ankete</xs:documentation>
    </xs:annotation>
  </xs:attribute>
</xs:schema>