Tartalmi kivonat
Elektronikus számla Elektronikus számla Kerekes Judit, gazdaságinformatikus Pécs, 2011. március 21 1 Kerekes Judit Tartalomjegyzék Elektronikus számla Mitől elektronikus az elektronikus számla? . 4 Fogalma. 4 Előnyei. 4 APEH: az elektronikus úton kibocsátott számlákra vonatkozó főbb rendelkezések . 5 Alapelvek . 5 Fajtái . 5 Adattartalma . 6 Megőrzése . 6 Az adóhatóság által elfogadott fájlformátumok . 6 Elektronikus számlázás technológiai felépítése . 7 Elektronikus aláírási rendszer. 7 Titkosítás . 8 Titkosítási algoritmusok . 9 Tanúsítvány hitelessége . 9 Összegzés . 10 Hivatkozások . 12 Mellékletek . 12 2 2011.0914 Kerekes Judit Elektronikus számla 1. Mitől elektronikus az elektronikus számla? a. Fogalma b. Előnyei 2. APEH: az elektronikus úton kibocsátott számlákra vonatkozó főbb rendelkezések a. Alapelvek b. Fajtái c. Adattartalma d. Megőrzése e. Az adóhatóság által elfogadott fájlformátumok
3. Elektronikus számlázás technológiai felépítése a. Elektronikus aláírási rendszer b. Titkosítás c. Titkosítási algoritmusok d. Tanúsítvány hitelessége 4. Összegzés 3 2011.0914 Kerekes Judit 1. Mitől elektronikus az elektronikus számla? Elektronikus számla A köznapi használatban e-számlázásnak azt nevezik, ha PDF-ben mentjük le számláinkat és e-mailen keresztül továbbítjuk azokat. Valójában egy sokkal összetettebb számla-kiállítási és hitelesítési módszerről van szó. a. Fogalma Az elektronikus számla olyan nem papír alapú számla, amely egy eredeti példányban készül, és egyszerűen – fájlmásolás útján – sokszorosítható. Az Áfa tv. 175 § (1) bekezdése alapján számlát elektronikus úton kibocsátani kizárólag abban az esetben lehet, ha a számla és az abban foglalt adattartalom sértetlensége, valamint eredetiségének hitelessége biztosított. Az elektronikus számla és annak adattartalmának
sértetlensége azt jelenti, hogy a számla megegyezik az eredetileg kibocsátottal, a számlára utólag semmiféle változtatást, módosítást nem vezethetnek. Az elektronikus számla eredetének hitelessége azt jelenti, hogy a technikai eszközök segítségével egyértelműen azonosítható a számlát kibocsátó, és minden kétséget kizáróan megállapítható, hogy a számlát a számlán szereplő adóalany bocsátotta ki. b. Előnyei Előnyei közé tartozik, hogy az elektronikus számlák elektronikus adatállományként – fájlként – kerülnek kiállításra, ezért azokat nem kell kinyomtatni, így a nyomtatás elhagyásával megtakarítható a papír és a nyomtatás költségei. A mai, hazai gyakorlatot tekintve a számlák legalább 3 példányban készülnek (vevő, számviteli nyilvántartás és a számlázási alapbizonylatot kiállító), illetve a belső nyilvántartási rendek és eljárások miatt gyakran azokból akár még több
fénymásolatot is szükséges készíteni. A számvitelről szóló 2000 évi C törvény előírja a számviteli bizonylatok 8 évig történő megőrzését, így nyilvánvaló, hogy ilyen mennyiségű dokumentum kezelése, illetve tárolása komoly feladatot és ezzel párhuzamban költséget jelent a vállalatok számára. Elektronikus számlák esetén viszont a kezeléssel és tárolással kapcsolatos költségeket számottevő mértékben megtakaríthatóak. Ezen felül további előny, hogy elektronikus dokumentumok, vagyis e- számlák nem vesznek el vagy sérülnek meg, illetve bármikor, könnyedén – akár 4 2011.0914 Kerekes Judit Elektronikus számla évekkel később is – másodpercek alatt visszakereshetőek és rendelkezésére állnak szemben a hagyományos számlákkal. Az elektronikus számlázás előnye még, hogy a kevesebb manuális munkafolyamatból adódóan minimalizálja a hibás, rontott számlák mennyiségét. Itt érdemes továbbá
megemlíteni, hogy az e-számla alkalmazásával mentesülünk az esetenként felmerülő hiteles számlamásolatok készítése és küldése alól is, hiszen egyetlen e-számla tetszőleges mennyiségben sokszorosítható, annak minden egyes példánya eredetinek és hitelesnek tekintendő. 2. APEH: az elektronikus úton kibocsátott számlákra vonatkozó főbb rendelkezések Az általános forgalmi adóról szóló 2007. évi CXXVII törvény (Áfa tv) 174 § (1) bekezdése alapján számla elektronikus úton is kibocsátható. Az Áfa tv 259 § 5. pontja szerint elektronikus úton kibocsátott számlának minősül a termék beszerzője, szolgáltatás igénybevevője részére az adatok vagy - digitális tömörítés felhasználásával - adatállományok elektronikus úton történő továbbítása, személyes rendelkezésre bocsátása telefonvezetékes, rádiós, optikai vagy egyéb elektromágneses rendszeren keresztül, elektronikus adatfeldolgozás céljára. Az
elektronikus számlázás számlakibocsátónál történő bevezetése nincs hatósági engedélyhez kötve. a. Alapelvek Az Áfa tv. 175 § (1) bekezdése alapján számlát elektronikus úton kibocsátani, illetőleg ilyen alapon rendelkezésre álló számlára az Áfa tv-ben szabályozott jogot alapítani, kizárólag abban az esetben lehet, ha a) a számla és az abban foglalt adattartalom sértetlensége, valamint b) eredetiségének hitelessége b. Fajtái Az előző pontban részletezett követelményeknek való megfelelés érdekében az elektronikus úton kibocsátott számlát kétféle módon lehet kibocsátani: 5 2011.0914 Kerekes Judit Elektronikus számla a) az elektronikus aláírásról szóló 2001. évi XXXV törvény (Eat) rendelkezései szerinti, legalább fokozott biztonságú elektronikus aláírással és minősített szolgáltató által kibocsátott időbélyegzővel kell ellátni; vagy b) az elektronikus adatcsererendszerben (EDI)
elektronikus adatként kell létrehozni és továbbítani. c. Adattartalma Az elektronikus úton kibocsátott számlának ugyanazon adattartalommal kell rendelkeznie, mint a papíron kibocsátottnak – az Áfa tv. 169 §-a alapján a számla kötelező adattartalma. A számla egyszerűsített adattartalommal is kibocsátható az Áfa tv. 176 § (1) bekezdésben lévő feltételek teljesítése esetén, ekkor az Áfa tv. 176 § (2) bekezdése szerinti adatokat kell feltüntetni d. Megőrzése A jelenleg hatályos szabályok szerint az elektronikus számlát és az összesítő dokumentumot a kiállítása szerinti eredeti formában kell megőrizni. Ez azt jelenti, hogy az elektronikus úton kibocsátott számlákat nem lehet más formátumban (pl. kinyomtatva) megőrizni Az elektronikus úton kibocsátott számla megőrzését az adóalanynak nem minden esetben saját magának kell ellátnia, hanem e feladattal mást is megbízhat, ezt szolgáltatásként mástól is igénybe
veheti. A Szt. 169 § (2) bekezdése az elektronikus formában kiállított számlák megőrzési idejét legalább 8 évben határozza meg. e. Az adóhatóság által elfogadott fájlformátumok Az elektronikus úton kibocsátott számlákra vonatkozóan az állami adóhatóság által elfogadott fájlformátumok a következők: • • .txt formátum (text fájl) bármilyen más olyan ún. print fájl formátum, mely nem formázott szöveget, illetve karaktereket tartalmaz, továbbá nem találhatók a fájlban - a soremelésen és az oldalkezdet jelzésén kívül - utasítások, és a fájl tartalma (a fájlban szereplő szöveg, illetve karakterek) egyértelműen megfeleltethető a kinyomtatott adatoknak (a fájlban szereplő karakterek sorozata, tulajdonsága a papírra történő kinyomtatással sem változik), • • 6 .csv fájlformátum, .dbf fájlformátum, 2011.0914 Kerekes Judit • • • Elektronikus számla .mdb fájlformátum, .xls (Excel)
fájlformátum, .xml fájlformátum1 3. Elektronikus számlázás technológiai felépítése Az elektronikus számlázás bevezetéséhez a vállalatnak a törvényben meghatározott technológiai feltételeket kell biztosítania. Ezek közül a legfontosabb, hogy az elektronikus számlának fokozott biztonságú elektronikus aláírást és minősített időbélyeget is tartalmaznia kell. Többféle formátumban készülhet, mindaddig, amíg a számlaadatok az adóhatóság által előírt (txt, pdf vagy xml) formátumban és adatstruktúrában előállíthatók belőle. Emellett az elektronikus számlák jogszabályban foglalt módon történő archiválásáról is gondoskodni kell. a. Elektronikus aláírási rendszer Az elektronikus aláírás rendszerében az eredet és a tartalom sérthetetlenségét fokozott biztonságú elektronikus aláírás és időbélyegző biztosítja. Az elektronikus számlához ilyenkor három szereplő kapcsolható: a kibocsátó, az
elektronikus aláírás szolgáltatója, és a vevő. Az elektronikus aláírásról szóló 2001. évi XXXV törvényünk (Eat) alapja az elektronikus aláírásra vonatkozó közösségi keretfeltételekről szóló 1999. december 13-i 1999/93/EK európai parlamenti és tanácsi irányelv. Az Eat. négy ún elektronikus aláírással kapcsolatos szolgáltatást határoz meg, amelyek a következők: Hitelesítés szolgáltatás, amely az elektronikus aláíráshoz szükséges tanúsítványok kibocsátását és fenntartását jelenti. A tanúsítvány az ügyfél nevét és aláírás-ellenőrző adatát (kriptográfiai nyilvános kulcsát) tartalmazza, azt írja le, hogy hogyan lehet ellenőrizni az adott személy elektronikus aláírásait. Időbélyegzés szolgáltatás, amelynek keretében egy megbízható fél, egy időbélyegzés szolgáltató saját aláírásával igazolja, hogy adott lenyomatú dokumentum adott időpontban már létezett. Az ilyen
igazolás az időbélyeg 7 2011.0914 Kerekes Judit Elektronikus számla Eszköz szolgáltatás, amely az aláírás-létrehozó eszközök, és a rajtuk lévő aláírás-létrehozó adat (kriptográfiai magánkulcs) generálását és kibocsátását jelenti. Elektronikus archiválás szolgáltatás, amely az elektronikusan aláírt és/vagy időbélyegzővel ellátott dokumentumok hosszú távú hiteles megőrzésére ad lehetőséget. A törvény mind a négy szolgáltatás tekintetében megkülönböztet minősített és nem minősített szolgáltatókat. A minősített elektronikus aláírás szolgáltatójának tevékenységét megelőzően be kell jelentkeznie a Hírközlési Felügyeletnél, ahol ilyen tevékenységet végzőként nyilvántartásba veszik A számla kibocsátója a szolgáltatótól kapott kulcs alapján kódolja a számla-dokumentumot, a vevő pedig a kapott kulcs segítségével olvashatja a dokumentumot. A kódoltan elküldött
számla a későbbiekben nem módosítható b. Titkosítás Hagyományos titkosítási eljárásnál egyetlen kulcsot kell ismernünk az üzenet kódolásához és dekódolásához. Nyilvános kulcsú titkosításnál minden egyes felhasználóhoz két kulcs tartozik: egy titkos, és egy nyilvános. A titkos és a nyilvános kulcs szerepe szimmetrikus. Minden felhasználónak generálnia kell a maga részére egy nyilvános/titkos kulcs párt. Ezután a nyilvános kulcsot minél szélesebb körben ismertté kell tenni, a titkos kulcsra ellentétben vigyázni kell. Bárki, aki titkosított üzenetet akar küldeni, nem kell mást tegyen, mint a fogadó nyilvános kulcsával kódolnia kell az üzenetet. A nyilvános kulcs ismerete nem segít abban, hogy a titkos kulcsot megfejtsük, ezért ha egy üzenetet valaki nyilvános kulcsával kódoltunk, akkor már magunk sem tudjuk azt visszafejteni, csakis a fogadó. Ha hitelesíteni akarunk egy üzenetet, akkor pedig a saját
titkos kulcsunkat használjuk. Az üzenetből képezünk, egy az üzenetnél jóval rövidebb számot, amit az üzenet ellenőrző összegének, ujjlenyomatának is nevezhetünk. Ezt a számot kódoljuk azután a saját titkos kulcsunkkal. A fogadó ezt csakis a mi nyilvános kulcsunkkal tudja kititkosítani és így biztos lehet abban, hogy az üzenetet valóban mi küldtük. Az üzenet ilyen esetben nincs feltétlenül kódolva, de mivel az egész üzenet ujjlenyomatát tartalmazza az aláírásunk, az üzeneten 8 2011.0914 Kerekes Judit Elektronikus számla végrehajtott minden változtatás, egyetlen vessző beszúrása vagy elhagyása is kiderül a fogadó oldalon. A digitálisan aláírt dokumentum egyben titkosított is, hiszen a fogadó fél nem tudná elolvasni azt, ha a feladó nem a kapott nyilvános kulcsával kódolta volna. Az előzőleg egymás között cserél nyilvános kulcsok csak a saját titkos kulcsunkkal használhatók, így biztosak lehetünk
benne, hogy bárki is csípné el kódolt levelünket, vagy más ügyiratunkat, képtelen kinyitni, mert nem rendelkezik a visszakódoló kulccsal. c. Titkosítási algoritmusok A digitális aláírást lehetővé teszi az ún. HASH eljárás, amely a HASH függvényen alapszik. Ennek lényege, hogy egy tetszőleges hosszúságú dokumentumhoz egy belőle létrehozott, állandó hosszúságú ún. stringet, azaz sűrítményt fűzünk hozzá. Az eredeti dokumentum a bemenet (input), a sűrítmény a kimenet (output). Minden dokumentumhoz más-más string tartozik A HASH a következő tulajdonságok miatt alkalmas “digitális ujjlenyomat” készítésére: • • • gyakorlatilag nem létezik két olyan input, ami azonos outputot generál, egy létező outputhoz az eredeti inputtól eltérő inputot nem lehet konstruálni úgy, hogy a HASH függvény ahhoz is azonos outputot rendeljen, a dokumentumban történő egy bit módosítás a kimenet több bitjét módosítja.
A leggyakrabban alkalmazott HASH függvény a Standard Hash Algoritmus, SHA. Itt az input tetszőleges hosszúságú (maximum 264 bit), a kimenet pedig 160 bit hosszú. Ez a HASH érték Az itt taglalt nyilvános kulcsú titkosítás eredeti ötlete Hellman nevéhez fűződik, a máig használt és biztonságos módszert Rivest-Shamir-Adleman adta meg (RSA). d. Tanúsítvány hitelessége Igen fontos, hogy ha valakinek a nyilvános kulcsát használjuk, akkor biztosak legyünk abban, hogy nem hamis, lejárt, vagy érvénytelen a kulcs. Ha rossz kulcsot használunk, akkor a nekünk küldött hamísított üzenetet hitelesnek hihetünk, valamint illetéktelenek is olvashatják titkosnak szánt üzenetünket. 9 2011.0914 Kerekes Judit Elektronikus számla A legegyszerűbb, és legbiztonságosabb, ha személyesen cserélünk kulcsot. Megfelelő megoldás, ha valaki a névjegyén közli, természetesen nem a nyilvános kulcsát, de annak egy ujjlenyomatát. Mint bármi más
információt, nyilvános kulcsokat is alá lehet digitálisan írni, akár több embernek is. Ha egy közjegyző, vagy valamilyen hivatal hitelesíti digitális aláírásával valakinek a nyilvános kulcsát, akkor ezt nem csak a polgári életben, hanem az államigazgatásban és a jogban is használhatja. ebből Tanúsítványok kiadását tanúsítvánnyal rendelkező szolgáltatók adják, kifolyólag egy fa struktúrában kell elképzelni a felépítését. Magyarországon jelenleg két olyan tanúsítványszolgáltató működik (Microsec, Netlock), amelyekhez visszavezethető a fa struktúrában a tanúsítványok, azaz a gyökértanúsítvánnyal rendelkező kiszolgáló. adott A tanúsítvány kiadó fél rendelkezik egy ún. visszavonási listával, ahol az személy tájékozódhat a küldő tanúsítványának hitelességéről. Rendelkezésünkre áll egy online tanúsítvány-állapot szolgáltatás (OCSP), mely segítségével kibocsátott
tanúsítványok aktuális visszavonási állapota lekérdezhető. A lekérdezés azonnali, hiteles választ ad egy tanúsítvány állapotáról. E szolgáltatás segítségével állapítható meg egy tanúsítvány visszavonási állapota a leggyorsabb és legbiztonságosabb módon. A tanúsítványállapot válasz hitelessége később is ellenőrizhető, így e válaszok bizonyítékként is felhasználhatóak. Az OCSP szolgáltatás a leghatékonyabb módja egy tanúsítvány visszavonási állapota lekérdezésének. Míg a hagyományos visszavonási listák (CRL-ek) esetében egy aláírás érvényességét leghamarabb csak a következő visszavonási lista közzététele után, azaz akár napokkal az aláírás időpontja után lehet bizonyítani, addig az OCSP esetében azonnali, hiteles válasz érkezik, amely csatolható az aláírt dokumentumhoz. 4. Összegzés Amellett, hogy az elektronikus számlakezelés gyorsítja és hatékonyabbá teszi az üzleti
folyamatokat: kevesebb manuális munkát, kevesebb hibát és alacsonyabb költségeket eredményez megbízhatónak is bizonyul a tanúsítványi 10 2011.0914 Kerekes Judit Elektronikus számla és titkosítási eljárásoknak köszönhetően. Számos magyarországi cég már használja, és egyre többen csatlakoznak hozzájuk. 11 2011.0914 Kerekes Judit Hivatkozások Elektronikus számla http://billzonehu.wordpresscom http://www.digitdochu/ http://www.apehhu http://www.eutaxhu http://computerworld.hu http://hu.wikipediaorg http://www.itbiztonsaghu https://srv.e-szignohu http://www.haszonhu http://kryonet.hu Mellékletek 1Az 12 .xml fájlformátum APEH által meghatározott definíciói (PDF dokumentum) 2011.0914 3. SZÁMÚ MELLÉKLET Elektronikus számla - XML definíciók a) Számla 1. ábra Számla 1 2. ábra Számla fejléce – eladó és vevő tekintetében 2 3. ábra Számla fejléce – képviselő és számlainformáció tekintetében 3
4. ábra Számlatételek 4 5. ábra Számla összesítése 5 DTD definíció <?xml version="1.0" encoding="UTF-8"?> <!--the entity declarations may be overridden in the internal subset--> <!--namespace prefixes--> <!ENTITY % szla prefix "szla"> <!--namespace prefix to namespace uri mappings--> <!ENTITY % szla prefix. "%szla prefix;:"> <!--namespaces attributes for root element--> <!ENTITY % documentElementAttributes " xmlns:%szla prefix; CDATA http://www.apehhu/2005/szamla"> <!--the declarations below should not be modified--> <!--element name mappings--> <!ENTITY % szla.szamla "%szla prefix;szamla"> <!ENTITY % szla.fejlec "%szla prefix;fejlec"> <!ENTITY % szla.tetelek "%szla prefix;tetelek"> <!ENTITY % szla.osszesites "%szla prefix;osszesites"> <!ENTITY % szla.elado "%szla
prefix;elado"> <!ENTITY % szla.kepviselo "%szla prefix;kepviselo"> <!ENTITY % szla.vevo "%szla prefix;vevo"> <!ENTITY % szla.szamlainfo "%szla prefix;szamlainfo"> <!ENTITY % szla.tetel "%szla prefix;tetel"> <!ENTITY % szla.afarovat "%szla prefix;afarovat"> <!ENTITY % szla.cim "%szla prefix;cim"> <!ENTITY % szla.nev "%szla prefix;nev"> <!ENTITY % szla.adoszam "%szla prefix;adoszam"> <!ENTITY % szla.kozadoszam "%szla prefix;kozadoszam"> <!ENTITY % szla.csasz "%szla prefix;csasz"> <!ENTITY % szla.orszag "%szla prefix;orszag"> <!ENTITY % szla.telepules "%szla prefix;telepules"> <!ENTITY % szla.irszam "%szla prefix;irszam"> <!ENTITY % szla.kozternev "%szla prefix;kozternev"> <!ENTITY % szla.kozterjell "%szla prefix;kozterjell"> <!ENTITY %
szla.hazszam "%szla prefix;hazszam"> <!ENTITY % szla.epulet "%szla prefix;epulet"> <!ENTITY % szla.lepcsohaz "%szla prefix;lepcsohaz"> <!ENTITY % szla.emelet "%szla prefix;emelet"> <!ENTITY % szla.sorszam "%szla prefix;sorszam"> <!ENTITY % szla.kuladohiv "%szla prefix;kuladohiv"> <!ENTITY % szla.kialldatum "%szla prefix;kialldatum"> <!ENTITY % szla.teljdatum "%szla prefix;teljdatum"> <!ENTITY % szla.fizhatarido "%szla prefix;fizhatarido"> <!ENTITY % szla.fizmod "%szla prefix;fizmod"> <!ENTITY % szla.termeknev "%szla prefix;termeknev"> <!ENTITY % szla.besorszam "%szla prefix;besorszam"> <!ENTITY % szla.mennyegys "%szla prefix;mennyegys"> <!ENTITY % szla.menny "%szla prefix;menny"> <!ENTITY % szla.nettoegysegar "%szla prefix;nettoegysegar"> <!ENTITY %
szla.bruttoegysegar "%szla prefix;bruttoegysegar"> <!ENTITY % szla.nettoar "%szla prefix;nettoar"> <!ENTITY % szla.bruttoar "%szla prefix;bruttoar"> <!ENTITY % szla.afakulcs "%szla prefix;afakulcs"> <!ENTITY % szla.afaertek "%szla prefix;afaertek"> <!ENTITY % szla.engedmeny "%szla prefix;engedmeny"> <!ENTITY % szla.engedmenyszazalek "%szla prefix;engedmenyszazalek"> <!ENTITY % szla.megjegyzes "%szla prefix;megjegyzes"> <!ENTITY % szla.vegosszeg "%szla prefix;vegosszeg"> <!ENTITY % szla.afaertekossz "%szla prefix;afaertekossz"> <!ENTITY % szla.nettoarossz "%szla prefix;nettoarossz"> <!ENTITY % szla.bruttoarossz "%szla prefix;bruttoarossz"> <!ENTITY % szla.kozleszkinf "%szla prefix;kozleszkinf"> <!ENTITY % szla.forgdatum "%szla prefix;forgdatum"> <!ENTITY %
szla.futottkm "%szla prefix;futottkm"> <!ENTITY % szla.repultora "%szla prefix;repultora"> <!ENTITY % szla.hajozottora "%szla prefix;hajozottora"> <!ENTITY % szla.szamlatipusa "%szla prefix;szamlatipusa"> 6 <!ENTITY % szla.hivatkozottszamla "%szla prefix;hivatkozottszamla"> <!ENTITY % szla.penznem "%szla prefix;penznem"> <!ENTITY % szla.arfolyam "%szla prefix;arfolyam"> <!ENTITY % szla.ftafaertek "%szla prefix;ftafaertek"> <!ENTITY % szla.egyebadat "%szla prefix;egyebadat"> <!ENTITY % szla.ajto "%szla prefix;ajto"> <!--element and attribute declarations--> <!ELEMENT %szla.szamla; (%szlafejlec;, %szlatetelek;, %szlaosszesites;)> <!ATTLIST %szla.szamla; %documentElementAttributes; > <!ELEMENT %szla.fejlec; (%szlaelado;, %szlavevo;, (%szlakepviselo;)?, %szlaszamlainfo;)> <!ATTLIST %szla.fejlec;
%documentElementAttributes; > <!ELEMENT %szla.tetelek; ((%szlatetel;)+)> <!ATTLIST %szla.tetelek; %documentElementAttributes; > <!ELEMENT %szla.osszesites; ((%szlaafarovat;, (%szlaafarovat;)?, (%szlaafarovat;)?, (%szlaafarovat;)?), %szla.vegosszeg;)> <!ATTLIST %szla.osszesites; %documentElementAttributes; > <!ELEMENT %szla.elado; (%szlanev;, %szlaadoszam;, (%szlacsasz;)?, %szlacim;)> <!ATTLIST %szla.elado; %documentElementAttributes; > <!ELEMENT %szla.kepviselo; (%szlanev;, %szlaadoszam;, (%szlacsasz;)?, %szlacim;)> <!ATTLIST %szla.kepviselo; %documentElementAttributes; > <!ELEMENT %szla.vevo; (%szlanev;, (%szlaadoszam;)?, (%szlakozadoszam;)?, (%szlacsasz;)?, %szla.cim;)> <!ATTLIST %szla.vevo; %documentElementAttributes; > <!ELEMENT %szla.szamlainfo; (%szlasorszam;, (%szlakuladohiv;)?, %szlakialldatum;, %szlateljdatum;, %szla.fizhatarido;, %szlafizmod;, %szlaszamlatipusa;, (%szlahivatkozottszamla;)?, (%szlaegyebadat;)?,
%szla.penznem;, (%szlaarfolyam;)?, (%szlaftafaertek;)?)> <!ATTLIST %szla.szamlainfo; %documentElementAttributes; > <!ELEMENT %szla.tetel; (%szlatermeknev;, (%szlabesorszam;)?, (%szlamennyegys;)?, (%szlamenny;)?, (%szla.nettoegysegar;)?, (%szlabruttoegysegar;)?, %szlanettoar;, %szlaafakulcs;, %szlaafaertek;, %szla.bruttoar;, (%szlakozleszkinf;)?, (%szlaengedmeny;)?, (%szlaengedmenyszazalek;)?, (%szla.megjegyzes;)?)> <!ATTLIST %szla.tetel; id NMTOKEN #REQUIRED %documentElementAttributes; > <!ELEMENT %szla.afarovat; (%szlaafakulcs;, %szlanettoar;, %szlaafaertek;, %szlabruttoar;)> <!ATTLIST %szla.afarovat; id NMTOKEN #REQUIRED %documentElementAttributes; > <!ELEMENT %szla.cim; (%szlaorszag;, %szlatelepules;, %szlairszam;, %szlakozternev;, %szla.kozterjell;, %szlahazszam;, (%szlaepulet;)?, (%szlalepcsohaz;)?, (%szlaemelet;)?, (%szlaajto;)?)> <!ATTLIST %szla.cim; %documentElementAttributes; > <!ELEMENT %szla.nev; (#PCDATA)> <!ATTLIST
%szla.nev; %documentElementAttributes; > 7 <!ELEMENT %szla.adoszam; (#PCDATA)> <!ATTLIST %szla.adoszam; %documentElementAttributes; > <!ELEMENT %szla.kozadoszam; (#PCDATA)> <!ATTLIST %szla.kozadoszam; %documentElementAttributes; > <!--Csoport Azonosító Szám--> <!ELEMENT %szla.csasz; (#PCDATA)> <!ATTLIST %szla.csasz; %documentElementAttributes; > <!ELEMENT %szla.orszag; (#PCDATA)> <!ATTLIST %szla.orszag; %documentElementAttributes; > <!ELEMENT %szla.telepules; (#PCDATA)> <!ATTLIST %szla.telepules; %documentElementAttributes; > <!ELEMENT %szla.irszam; (#PCDATA)> <!ATTLIST %szla.irszam; %documentElementAttributes; > <!ELEMENT %szla.kozternev; (#PCDATA)> <!ATTLIST %szla.kozternev; %documentElementAttributes; > <!ELEMENT %szla.kozterjell; (#PCDATA)> <!ATTLIST %szla.kozterjell; %documentElementAttributes; > <!ELEMENT %szla.hazszam; (#PCDATA)> <!ATTLIST %szla.hazszam;
%documentElementAttributes; > <!ELEMENT %szla.epulet; (#PCDATA)> <!ATTLIST %szla.epulet; %documentElementAttributes; > <!ELEMENT %szla.lepcsohaz; (#PCDATA)> <!ATTLIST %szla.lepcsohaz; %documentElementAttributes; > <!ELEMENT %szla.emelet; (#PCDATA)> <!ATTLIST %szla.emelet; %documentElementAttributes; > <!ELEMENT %szla.sorszam; (#PCDATA)> <!ATTLIST %szla.sorszam; %documentElementAttributes; > <!ELEMENT %szla.kuladohiv; (#PCDATA)> <!ATTLIST %szla.kuladohiv; %documentElementAttributes; > <!ELEMENT %szla.kialldatum; (#PCDATA)> <!ATTLIST %szla.kialldatum; %documentElementAttributes; > <!ELEMENT %szla.teljdatum; (#PCDATA)> <!ATTLIST %szla.teljdatum; %documentElementAttributes; > 8 <!ELEMENT %szla.fizhatarido; (#PCDATA)> <!ATTLIST %szla.fizhatarido; %documentElementAttributes; > <!ELEMENT %szla.fizmod; (#PCDATA)> <!ATTLIST %szla.fizmod; %documentElementAttributes; > <!ELEMENT
%szla.termeknev; (#PCDATA)> <!ATTLIST %szla.termeknev; %documentElementAttributes; > <!ELEMENT %szla.besorszam; (#PCDATA)> <!ATTLIST %szla.besorszam; %documentElementAttributes; > <!ELEMENT %szla.mennyegys; (#PCDATA)> <!ATTLIST %szla.mennyegys; %documentElementAttributes; > <!ELEMENT %szla.menny; (#PCDATA)> <!ATTLIST %szla.menny; %documentElementAttributes; > <!ELEMENT %szla.nettoegysegar; (#PCDATA)> <!ATTLIST %szla.nettoegysegar; %documentElementAttributes; > <!ELEMENT %szla.bruttoegysegar; (#PCDATA)> <!ATTLIST %szla.bruttoegysegar; %documentElementAttributes; > <!ELEMENT %szla.nettoar; (#PCDATA)> <!ATTLIST %szla.nettoar; %documentElementAttributes; > <!ELEMENT %szla.bruttoar; (#PCDATA)> <!ATTLIST %szla.bruttoar; %documentElementAttributes; > <!ELEMENT %szla.afakulcs; (#PCDATA)> <!ATTLIST %szla.afakulcs; %documentElementAttributes; > <!ELEMENT %szla.afaertek; (#PCDATA)>
<!ATTLIST %szla.afaertek; %documentElementAttributes; > <!--a tételhez tartozó engedmény összege--> <!ELEMENT %szla.engedmeny; (#PCDATA)> <!ATTLIST %szla.engedmeny; %documentElementAttributes; > <!--a tételhez tartozó engedmény százalékos értéke--> <!ELEMENT %szla.engedmenyszazalek; (#PCDATA)> <!ATTLIST %szla.engedmenyszazalek; %documentElementAttributes; > <!ELEMENT %szla.megjegyzes; (#PCDATA)> <!ATTLIST %szla.megjegyzes; %documentElementAttributes; > <!ELEMENT %szla.vegosszeg; (%szlanettoarossz;, %szlaafaertekossz;, %szlabruttoarossz;)> <!ATTLIST %szla.vegosszeg; %documentElementAttributes; 9 > <!ELEMENT %szla.afaertekossz; (#PCDATA)> <!ATTLIST %szla.afaertekossz; %documentElementAttributes; > <!ELEMENT %szla.nettoarossz; (#PCDATA)> <!ATTLIST %szla.nettoarossz; %documentElementAttributes; > <!ELEMENT %szla.bruttoarossz; (#PCDATA)> <!ATTLIST %szla.bruttoarossz;
%documentElementAttributes; > <!ELEMENT %szla.kozleszkinf; (%szlaforgdatum;, (%szlafutottkm; | %szlarepultora; | %szla.hajozottora;))> <!ATTLIST %szla.kozleszkinf; %documentElementAttributes; > <!ELEMENT %szla.forgdatum; (#PCDATA)> <!ATTLIST %szla.forgdatum; %documentElementAttributes; > <!ELEMENT %szla.futottkm; (#PCDATA)> <!ATTLIST %szla.futottkm; %documentElementAttributes; > <!ELEMENT %szla.repultora; (#PCDATA)> <!ATTLIST %szla.repultora; %documentElementAttributes; > <!ELEMENT %szla.hajozottora; (#PCDATA)> <!ATTLIST %szla.hajozottora; %documentElementAttributes; > <!ELEMENT %szla.szamlatipusa; (#PCDATA)> <!ATTLIST %szla.szamlatipusa; %documentElementAttributes; > <!--jóváíró vagy sztornó számla esetén a hivatkozott számla sorszáma--> <!ELEMENT %szla.hivatkozottszamla; (#PCDATA)> <!ATTLIST %szla.hivatkozottszamla; %documentElementAttributes; > <!ELEMENT %szla.penznem;
(#PCDATA)> <!ATTLIST %szla.penznem; %documentElementAttributes; > <!--devizás számla esetén a használt árfolyam értéke--> <!ELEMENT %szla.arfolyam; (#PCDATA)> <!ATTLIST %szla.arfolyam; %documentElementAttributes; > <!--devizás számla esetén az ÁFA értéke átszámítva forintba--> <!ELEMENT %szla.ftafaertek; (#PCDATA)> <!ATTLIST %szla.ftafaertek; %documentElementAttributes; > <!--egyéb adatok, megjegyzések tárolására--> <!ELEMENT %szla.egyebadat; (#PCDATA)> <!ATTLIST %szla.egyebadat; %documentElementAttributes; > <!ELEMENT %szla.ajto; (#PCDATA)> <!ATTLIST %szla.ajto; %documentElementAttributes; > 10 XSD séma definíció <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:szla="http://www.apehhu/2005/szamla" xmlns:xs="http://wwww3org/2001/XMLSchema" targetNamespace="http://www.apehhu/2005/szamla"> <xs:complexType
name="szamlatipus"> <xs:sequence> <xs:element ref="szla:fejlec"/> <xs:element ref="szla:tetelek"/> <xs:element ref="szla:osszesites"/> </xs:sequence> </xs:complexType> <xs:complexType name="fejlectipus"> <xs:sequence> <xs:element ref="szla:elado"/> <xs:element ref="szla:vevo"/> <xs:element ref="szla:kepviselo" minOccurs="0"/> <xs:element ref="szla:szamlainfo"/> </xs:sequence> </xs:complexType> <xs:complexType name="tetelektipus"> <xs:sequence> <xs:element ref="szla:tetel"/> </xs:sequence> </xs:complexType> <xs:complexType name="osszesitestipus"> <xs:sequence> <xs:element ref="szla:afarovat" maxOccurs="unbounded"/> <xs:element ref="szla:vegosszeg"/> </xs:sequence>
</xs:complexType> <xs:complexType name="eladotipus"> <xs:sequence> <xs:element ref="szla:nev"/> <xs:element ref="szla:adoszam"/> <xs:element ref="szla:csasz" minOccurs="0"/> <xs:element ref="szla:cim"/> </xs:sequence> </xs:complexType> <xs:complexType name="kepviselotipus"> <xs:sequence> <xs:element ref="szla:nev"/> <xs:element ref="szla:adoszam"/> <xs:element ref="szla:csasz" minOccurs="0"/> <xs:element ref="szla:cim"/> </xs:sequence> </xs:complexType> <xs:complexType name="vevotipus"> <xs:sequence> <xs:element ref="szla:nev"/> <xs:element ref="szla:adoszam" minOccurs="0"/> <xs:element ref="szla:kozadoszam" minOccurs="0"/> <xs:element ref="szla:csasz"
minOccurs="0"/> <xs:element ref="szla:cim"/> </xs:sequence> </xs:complexType> <xs:complexType name="szamlainfotipus"> <xs:sequence> <xs:element ref="szla:sorszam"/> <xs:element ref="szla:kuladohiv" minOccurs="0"/> <xs:element ref="szla:kialldatum"/> <xs:element ref="szla:teljdatum"/> <xs:element ref="szla:fizhatarido"/> <xs:element ref="szla:fizmod"/> 11 <xs:element ref="szla:szamlatipusa"/> <xs:element ref="szla:hivatkozottszamla" minOccurs="0"/> <xs:element ref="szla:egyebadat" minOccurs="0"/> <xs:element ref="szla:penznem"/> <xs:element ref="szla:arfolyam" minOccurs="0"/> <xs:element ref="szla:ftafaertek" minOccurs="0"/> </xs:sequence> </xs:complexType>
<xs:complexType name="teteltipus"> <xs:sequence> <xs:element ref="szla:termeknev"/> <xs:element ref="szla:besorszam" minOccurs="0"/> <xs:element ref="szla:mennyegys" minOccurs="0"/> <xs:element ref="szla:menny" minOccurs="0"/> <xs:element ref="szla:nettoegysegar" minOccurs="0"/> <xs:element ref="szla:bruttoegysegar" minOccurs="0"/> <xs:element ref="szla:nettoar"/> <xs:element ref="szla:afakulcs"/> <xs:element ref="szla:afaertek"/> <xs:element ref="szla:bruttoar"/> <xs:element ref="szla:kozleszkinf" minOccurs="0"/> <xs:element ref="szla:engedmeny" minOccurs="0"/> <xs:element ref="szla:engedmenyszazalek" minOccurs="0"/> <xs:element ref="szla:megjegyzes"
minOccurs="0"/> </xs:sequence> <xs:attribute name="id" type="xs:integer" use="required"/> </xs:complexType> <xs:complexType name="vegosszegtipus"> <xs:sequence> <xs:element ref="szla:nettoarossz"/> <xs:element ref="szla:afaertekossz"/> <xs:element ref="szla:bruttoarossz"/> </xs:sequence> </xs:complexType> <xs:complexType name="afarovattipus"> <xs:sequence> <xs:element ref="szla:afakulcs"/> <xs:element ref="szla:nettoar"/> <xs:element ref="szla:afaertek"/> <xs:element ref="szla:bruttoar"/> </xs:sequence> <xs:attribute name="id" type="xs:integer" use="required"/> </xs:complexType> <xs:complexType name="cimtipus"> <xs:sequence> <xs:element ref="szla:orszag"/> <xs:element
ref="szla:telepules"/> <xs:element ref="szla:irszam"/> <xs:element ref="szla:kozternev"/> <xs:element ref="szla:kozterjell"/> <xs:element ref="szla:hazszam"/> <xs:element ref="szla:epulet" minOccurs="0"/> <xs:element ref="szla:lepcsohaz" minOccurs="0"/> <xs:element ref="szla:emelet" minOccurs="0"/> <xs:element ref="szla:ajto" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="kozleszkinftipus"> <xs:sequence> <xs:element ref="szla:forgdatum"/> <xs:choice> <xs:element ref="szla:futottkm"/> <xs:element ref="szla:repultora"/> <xs:element ref="szla:hajozottora"/> </xs:choice> 12 </xs:sequence> </xs:complexType> <xs:element name="szamla"
type="szla:szamlatipus"/> <xs:element name="fejlec" type="szla:fejlectipus"/> <xs:element name="tetelek"> <xs:complexType> <xs:sequence> <xs:element ref="szla:tetel" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="osszesites"> <xs:complexType> <xs:sequence> <xs:element ref="szla:afarovat" maxOccurs="4"/> <xs:element ref="szla:vegosszeg"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="elado" type="szla:eladotipus"/> <xs:element name="kepviselo" type="szla:kepviselotipus"/> <xs:element name="vevo" type="szla:vevotipus"/> <xs:element name="szamlainfo" type="szla:szamlainfotipus"/> <xs:element name="tetel"
type="szla:teteltipus"/> <xs:element name="afarovat" type="szla:afarovattipus"/> <xs:element name="cim" type="szla:cimtipus"/> <xs:element name="nev" type="xs:string"/> <xs:element name="adoszam" type="xs:string"/> <xs:element name="kozadoszam" type="xs:string"/> <xs:element name="csasz" type="xs:string"> <xs:annotation> <xs:documentation>Csoport Azonosító Szám</xs:documentation> </xs:annotation> </xs:element> <xs:element name="orszag" type="xs:string"/> <xs:element name="telepules" type="xs:string"/> <xs:element name="irszam" type="xs:string"/> <xs:element name="kozternev" type="xs:string"/> <xs:element name="kozterjell" type="xs:string"/> <xs:element
name="hazszam" type="xs:string"/> <xs:element name="epulet" type="xs:string"/> <xs:element name="lepcsohaz" type="xs:string"/> <xs:element name="emelet" type="xs:string"/> <xs:element name="sorszam" type="xs:string"/> <xs:element name="kuladohiv" type="xs:boolean"/> <xs:element name="kialldatum" type="xs:date"/> <xs:element name="teljdatum" type="xs:date"/> <xs:element name="fizhatarido" type="xs:date"/> <xs:element name="fizmod" type="xs:string"/> <xs:element name="termeknev" type="xs:string"/> <xs:element name="besorszam" type="xs:string"/> <xs:element name="mennyegys" type="xs:string"/> <xs:element name="menny" type="xs:float"/>
<xs:element name="nettoegysegar" type="xs:float"/> <xs:element name="bruttoegysegar" type="xs:float"/> <xs:element name="nettoar" type="xs:float"/> <xs:element name="bruttoar" type="xs:float"/> <xs:element name="afakulcs" type="xs:string"/> <xs:element name="afaertek" type="xs:float"/> <xs:element name="engedmeny" type="xs:float"> <xs:annotation> <xs:documentation>a tételhez tartozó engedmény összege</xs:documentation> </xs:annotation> </xs:element> <xs:element name="engedmenyszazalek" type="xs:float"> 13 <xs:annotation> <xs:documentation>a tételhez tartozó engedmény százalékos értéke</xs:documentation> </xs:annotation> </xs:element> <xs:element name="megjegyzes" type="xs:string"/>
<xs:element name="vegosszeg" type="szla:vegosszegtipus"/> <xs:element name="afaertekossz" type="xs:float"/> <xs:element name="nettoarossz" type="xs:float"/> <xs:element name="bruttoarossz" type="xs:float"/> <xs:element name="kozleszkinf" type="szla:kozleszkinftipus"/> <xs:element name="forgdatum" type="xs:date"/> <xs:element name="futottkm" type="xs:float"/> <xs:element name="repultora" type="xs:float"/> <xs:element name="hajozottora" type="xs:float"/> <xs:element name="szamlatipusa" type="xs:string"/> <xs:element name="hivatkozottszamla" type="xs:string"> <xs:annotation> <xs:documentation>jóváíró vagy sztornó számla esetén a hivatkozott számla sorszáma</xs:documentation>
</xs:annotation> </xs:element> <xs:element name="penznem" type="xs:string"/> <xs:element name="arfolyam" type="xs:float"> <xs:annotation> <xs:documentation>devizás számla esetén a használt árfolyam értéke</xs:documentation> </xs:annotation> </xs:element> <xs:element name="ftafaertek" type="xs:float"> <xs:annotation> <xs:documentation>devizás számla esetén az ÁFA értéke átszámítva forintba</xs:documentation> </xs:annotation> </xs:element> <xs:element name="egyebadat" type="xs:string"> <xs:annotation> <xs:documentation>egyéb adatok, megjegyzések tárolására</xs:documentation> </xs:annotation> </xs:element> <xs:element name="ajto" type="xs:string"/> </xs:schema> 14 Példa xml <?xml version="1.0"
encoding="UTF-8"?> <szamla xmlns="http://www.apehhu/2005/szamla" xmlns:xsi="http://wwww3org/2001/XMLSchemainstance"> <fejlec> <elado> <nev>Könyv Bt.</nev> <adoszam>12345678-2-44</adoszam> <csasz>11111111-2-22</csasz> <cim> <orszag>Magyarország</orszag> <telepules>Budapest</telepules> <irszam>1111</irszam> <kozternev>Seholnemvolt</kozternev> <kozterjell>utca</kozterjell> <hazszam>77</hazszam> <epulet>B</epulet> <emelet>2.</emelet> <ajto>11</ajto> </cim> </elado> <vevo> <nev>Kovács János</nev> <adoszam>12345678-2-45</adoszam> <csasz>22222222-2-45</csasz> <cim> <orszag>Magyarország</orszag> <telepules>Budapest</telepules> <irszam>1111</irszam> <kozternev>Nevenincs</kozternev>
<kozterjell>tér</kozterjell> <hazszam>1</hazszam> </cim> </vevo> <szamlainfo> <sorszam>SZ0002</sorszam> <kialldatum>2009-06-10</kialldatum> <teljdatum>2009-06-18</teljdatum> <fizhatarido>2009-06-18</fizhatarido> <fizmod>készpénz</fizmod> <szamlatipusa>normal</szamlatipusa> <hivatkozottszamla>SZ0001</hivatkozottszamla> <egyebadat>Minta számla</egyebadat> <penznem>HUF</penznem> </szamlainfo> </fejlec> <tetelek> <tetel id="1"> <termeknev>kis könyv</termeknev> <besorszam>4903</besorszam> <nettoar>2000</nettoar> <afakulcs>5</afakulcs> <afaertek>100</afaertek> <bruttoar>2100</bruttoar> <engedmeny>210</engedmeny> <engedmenyszazalek>10</engedmenyszazalek> </tetel> <tetel id="2">
<termeknev>nagy könyv</termeknev> <besorszam>4903</besorszam> <nettoar>5000</nettoar> <afakulcs>5</afakulcs> <afaertek>250</afaertek> 15 <bruttoar>5250</bruttoar> </tetel> </tetelek> <osszesites> <afarovat id="1"> <afakulcs>5</afakulcs> <nettoar>7000</nettoar> <afaertek>350</afaertek> <bruttoar>7350</bruttoar> </afarovat> <vegosszeg> <nettoarossz>7000</nettoarossz> <afaertekossz>350</afaertekossz> <bruttoarossz>7350</bruttoarossz> </vegosszeg> </osszesites> </szamla> 16 b) Egyszerűsített számla 6. ábra Egyszerűsített számla 17 7. ábra Egyszerűsített számla fejléce 18 8. ábra Egyszerűsített számla tételei 19 9. ábra Egyszerűsített számla összesítése 20 DTD definíció <?xml version="1.0"
encoding="UTF-8"?> <!ELEMENT szamla (fejlec, tetelek, osszesites)> <!ELEMENT fejlec (elado, vevo, kepviselo?, szamlainfo)> <!ELEMENT elado (nev, adoszam, cim)> <!ELEMENT vevo (nev, adoszam?, kozadoszam?, cim)> <!ELEMENT kepviselo (nev, adoszam, cim)> <!ELEMENT nev (#PCDATA)> <!ELEMENT adoszam (#PCDATA)> <!ELEMENT kozadoszam (#PCDATA)> <!ELEMENT cim (orszag, telepules, irszam, kozternev, kozterjell, hazszam, epulet?, lepcsohaz?, emelet?, ajto?)> <!ELEMENT orszag (#PCDATA)> <!ELEMENT telepules (#PCDATA)> <!ELEMENT irszam (#PCDATA)> <!ELEMENT kozternev (#PCDATA)> <!ELEMENT kozterjell (#PCDATA)> <!ELEMENT hazszam (#PCDATA)> <!ELEMENT epulet (#PCDATA)> <!ELEMENT lepcsohaz (#PCDATA)> <!ELEMENT emelet (#PCDATA)> <!ELEMENT ajto (#PCDATA)> <!ELEMENT szamlainfo (sorszam, kuladohiv?, kialldatum, teljdatum, fizhatarido, fizmod, szamlatipusa?, penznem?)> <!ELEMENT
sorszam (#PCDATA)> <!ELEMENT kuladohiv (#PCDATA)> <!ELEMENT kialldatum (#PCDATA)> <!ELEMENT teljdatum (#PCDATA)> <!ELEMENT fizhatarido (#PCDATA)> <!ELEMENT fizmod (#PCDATA)> <!ELEMENT szamlatipusa (#PCDATA)> <!ELEMENT penznem (#PCDATA)> <!ELEMENT tetelek (tetel+)> <!ELEMENT tetel (termeknev, besorszam, mennyegys?, menny?, nettoegysegar?, nettoar, afakulcs, afaertek, bruttoar, kozleszkinf?)> <!ELEMENT termeknev (#PCDATA)> <!ELEMENT besorszam (#PCDATA)> <!ELEMENT mennyegys (#PCDATA)> <!ELEMENT menny (#PCDATA)> <!ELEMENT nettoegysegar (#PCDATA)> <!ELEMENT nettoar (#PCDATA)> <!ELEMENT afakulcs (#PCDATA)> <!ELEMENT afaertek (#PCDATA)> <!ELEMENT bruttoar (#PCDATA)> <!ELEMENT kozleszkinf (forgdatum, (futottkm | repultora | hajozottora))> <!ELEMENT forgdatum (#PCDATA)> <!ELEMENT futottkm (#PCDATA)> <!ELEMENT repultora (#PCDATA)> <!ELEMENT hajozottora
(#PCDATA)> <!ELEMENT osszesites (afarovat+, vegosszeg)> <!ELEMENT afarovat (afakulcs, nettoar, afaertek, bruttoar)> <!ELEMENT vegosszeg (nettoarossz, afaertekossz, bruttoarossz)> <!ELEMENT nettoarossz (#PCDATA)> <!ELEMENT afaertekossz (#PCDATA)> <!ELEMENT bruttoarossz (#PCDATA)> <!ATTLIST afarovatCDATA #REQUIRED> <!ATTLIST tetel id CDATA #REQUIRED> 21 XSD séma definíció <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:szla="http://www.apehhu/2005/szamla" xmlns:xs="http://wwww3org/2001/XMLSchema" targetNamespace="http://www.apehhu/2005/szamla"> <xs:complexType name="szamlatipus"> <xs:sequence> <xs:element ref="szla:fejlec"/> <xs:element ref="szla:tetelek"/> <xs:element ref="szla:osszesites"/> </xs:sequence> </xs:complexType> <xs:complexType name="fejlectipus">
<xs:sequence> <xs:element ref="szla:elado"/> <xs:element ref="szla:vevo"/> <xs:element ref="szla:kepviselo" minOccurs="0"/> <xs:element ref="szla:szamlainfo"/> </xs:sequence> </xs:complexType> <xs:complexType name="tetelektipus"> <xs:annotation> <xs:documentation>számla tételei</xs:documentation> </xs:annotation> <xs:sequence> <xs:element ref="szla:tetel"/> </xs:sequence> </xs:complexType> <xs:complexType name="osszesitestipus"> <xs:sequence> <xs:element ref="szla:afarovat" maxOccurs="unbounded"/> <xs:element ref="szla:vegosszeg"/> </xs:sequence> </xs:complexType> <xs:complexType name="eladotipus"> <xs:sequence> <xs:element ref="szla:nev"/> <xs:element ref="szla:adoszam"/> <xs:element
ref="szla:cim"/> </xs:sequence> </xs:complexType> <xs:complexType name="kepviselotipus"> <xs:sequence> <xs:element ref="szla:nev"/> <xs:element ref="szla:adoszam"/> <xs:element ref="szla:cim"/> </xs:sequence> </xs:complexType> <xs:complexType name="vevotipus"> <xs:sequence> <xs:element ref="szla:nev"/> <xs:element ref="szla:adoszam" minOccurs="0"/> <xs:element ref="szla:kozadoszam" minOccurs="0"/> <xs:element ref="szla:cim"/> </xs:sequence> </xs:complexType> <xs:complexType name="szamlainfotipus"> <xs:sequence> <xs:element ref="szla:sorszam"/> <xs:element ref="szla:kuladohiv" minOccurs="0"/> <xs:element ref="szla:kialldatum"/> <xs:element ref="szla:teljdatum"/>
<xs:element ref="szla:fizhatarido"/> <xs:element ref="szla:fizmod"/> 22 <xs:element ref="szla:szamlatipusa" minOccurs="0"/> <xs:element ref="szla:penznem" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="teteltipus"> <xs:sequence> <xs:element ref="szla:termeknev"/> <xs:element ref="szla:besorszam"/> <xs:element ref="szla:mennyegys" minOccurs="0"/> <xs:element ref="szla:menny" minOccurs="0"/> <xs:element ref="szla:nettoegysegar" minOccurs="0"/> <xs:element ref="szla:bruttoegysegar" minOccurs="0"/> <xs:element ref="szla:nettoar"/> <xs:element ref="szla:afakulcs"/> <xs:element ref="szla:afaertek"/> <xs:element ref="szla:bruttoar"/> <xs:element
ref="szla:kozleszkinf" minOccurs="0"/> </xs:sequence> <xs:attribute name="id" type="xs:integer" use="required"/> </xs:complexType> <xs:complexType name="vegosszegtipus"> <xs:sequence> <xs:element ref="szla:nettoarossz"/> <xs:element ref="szla:afaertekossz"/> <xs:element ref="szla:bruttoarossz"/> </xs:sequence> </xs:complexType> <xs:complexType name="afarovattipus"> <xs:sequence/> <xs:attribute name="id" type="xs:integer" use="required"/> </xs:complexType> <xs:complexType name="cimtipus"> <xs:sequence> <xs:element ref="szla:orszag"/> <xs:element ref="szla:telepules"/> <xs:element ref="szla:irszam"/> <xs:element ref="szla:kozternev"/> <xs:element ref="szla:kozterjell"/>
<xs:element ref="szla:hazszam"/> <xs:element ref="szla:epulet" minOccurs="0"/> <xs:element ref="szla:lepcsohaz" minOccurs="0"/> <xs:element ref="szla:emelet" minOccurs="0"/> <xs:element ref="szla:ajto"/> </xs:sequence> </xs:complexType> <xs:complexType name="kozleszkinftipus"> <xs:sequence> <xs:element ref="szla:forgdatum"/> <xs:choice> <xs:element ref="szla:futottkm"/> <xs:element ref="szla:repultora"/> <xs:element ref="szla:hajozottora"/> </xs:choice> </xs:sequence> </xs:complexType> <xs:element name="szamla" type="szla:szamlatipus"> <xs:annotation> <xs:documentation>16. számla: adóigazgatási azonosításra alkalmas bármely olyan papír alapú, vagy a vevővel történt megállapodás alapján – külön
jogszabály által meghatározottak szerint – elektronikus úton kibocsátott bizonylat</xs:documentation> </xs:annotation> </xs:element> <xs:element name="fejlec" type="szla:fejlectipus"/> <xs:element name="tetelek"> <xs:complexType> 23 <xs:sequence> <xs:element ref="szla:tetel" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="osszesites"> <xs:complexType> <xs:sequence> <xs:element ref="szla:afarovat" maxOccurs="4"/> <xs:element ref="szla:vegosszeg"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="elado" type="szla:eladotipus"> <xs:annotation> <xs:documentation>a termékértékesítést teljesítő, szolgáltatást nyújtó adóalany neve, címe és
adószáma</xs:documentation> </xs:annotation> </xs:element> <xs:element name="kepviselo" type="szla:kepviselotipus"> <xs:annotation> <xs:documentation>amennyiben az adó fizetésére a pénzügyi képviselő, vagy a Jöt. szerinti adóügyi képviselő kötelezett, annak neve, címe és adószáma</xs:documentation> </xs:annotation> </xs:element> <xs:element name="vevo" type="szla:vevotipus"> <xs:annotation> <xs:documentation>a vevő neve, címe illetve ha a vevő az adó fizetésére kötelezett, annak adószáma</xs:documentation> </xs:annotation> </xs:element> <xs:element name="szamlainfo" type="szla:szamlainfotipus"/> <xs:element name="tetel" type="szla:teteltipus"/> <xs:element name="afarovat" type="szla:afarovattipus"/> <xs:element name="cim"
type="szla:cimtipus"/> <xs:element name="nev" type="xs:string"/> <xs:element name="adoszam" type="xs:string"/> <xs:element name="kozadoszam" type="xs:string"> <xs:annotation> <xs:documentation>Közösségen belüli adómentes értékesítés esetén, amennyiben a Közösségen belülről történő termékbeszerzés során a vevő az adófizetésére kötelezett személy, ennek közösségi adószáma</xs:documentation> </xs:annotation> </xs:element> <xs:element name="orszag" type="xs:string"/> <xs:element name="telepules" type="xs:string"/> <xs:element name="irszam" type="xs:integer"/> <xs:element name="kozternev" type="xs:string"/> <xs:element name="kozterjell" type="xs:string"/> <xs:element name="hazszam"
type="xs:integer"/> <xs:element name="epulet" type="xs:string"/> <xs:element name="lepcsohaz" type="xs:string"/> <xs:element name="emelet" type="xs:string"/> <xs:element name="sorszam" type="xs:integer"> <xs:annotation> <xs:documentation>a számla sorszáma</xs:documentation> </xs:annotation> </xs:element> <xs:element name="kuladohiv" type="xs:boolean"> <xs:annotation> <xs:documentation>a különbözet szerinti adózás alkalmazása esetén ezen adózási módra történő hivatkozás</xs:documentation> </xs:annotation> </xs:element> <xs:element name="kialldatum" type="xs:date"> 24 <xs:annotation> <xs:documentation>a számla kibocsátásának kelte</xs:documentation> </xs:annotation> </xs:element> <xs:element
name="teljdatum" type="xs:date"> <xs:annotation> <xs:documentation>a teljesítés dátuma</xs:documentation> </xs:annotation> </xs:element> <xs:element name="fizhatarido" type="xs:date"> <xs:annotation> <xs:documentation>a fizetés határideje</xs:documentation> </xs:annotation> </xs:element> <xs:element name="fizmod" type="xs:string"> <xs:annotation> <xs:documentation>a fizetés módja</xs:documentation> </xs:annotation> </xs:element> <xs:element name="termeknev" type="xs:string"> <xs:annotation> <xs:documentation>a termék (szolgáltatás) megnevezése</xs:documentation> </xs:annotation> </xs:element> <xs:element name="besorszam" type="xs:string"> <xs:annotation> <xs:documentation>a termék (szolgáltatás) besorolási
száma</xs:documentation> </xs:annotation> </xs:element> <xs:element name="mennyegys" type="xs:string"> <xs:annotation> <xs:documentation>a termék, szolgáltatás – amennyiben ez utóbbi természetes mértékegységben kifejezhető – mennyiségi egysége és mennyisége </xs:documentation> </xs:annotation> </xs:element> <xs:element name="menny" type="xs:float"/> <xs:element name="nettoegysegar" type="xs:float"> <xs:annotation> <xs:documentation>a termék, szolgáltatás – amennyiben ez utóbbi egységre vetíthető – adó nélkül számított egységára</xs:documentation> </xs:annotation> </xs:element> <xs:element name="bruttoegysegar" type="xs:float"> <xs:annotation> <xs:documentation>a termék, szolgáltatás – amennyiben ez utóbbi egységre vetíthető – adóval együtt
számított egységára</xs:documentation> </xs:annotation> </xs:element> <xs:element name="nettoar" type="xs:float"> <xs:annotation> <xs:documentation>a termék (szolgáltatás) adó nélkül számított ellenértéke összesen</xs:documentation> </xs:annotation> </xs:element> <xs:element name="bruttoar" type="xs:float"/> <xs:element name="afakulcs" type="xs:float"> <xs:annotation> <xs:documentation>a felszámított adó százalékos mértéke</xs:documentation> </xs:annotation> </xs:element> <xs:element name="afaertek" type="xs:float"/> <xs:element name="vegosszeg" type="szla:vegosszegtipus"> <xs:annotation> <xs:documentation>a termék (szolgáltatás) adóval együtt számított ellenértéke összesen</xs:documentation> 25 </xs:annotation>
</xs:element> <xs:element name="afaertekossz" type="xs:float"/> <xs:element name="nettoarossz" type="xs:float"/> <xs:element name="bruttoarossz" type="xs:float"/> <xs:element name="kozleszkinf" type="szla:kozleszkinftipus"> <xs:annotation> <xs:documentation>új közlekedési eszköz másik tagállamba történő értékesítése esetén erre a tényre történő utalás, a közlekedési eszköz első forgalomba helyezésének időpontja, és szárazföldi közlekedési eszköz esetén a futott kilométerek száma, vízi közlekedési eszköz esetén a hajózott órák száma, légi közlekedési eszköz esetén a repült órák száma</xs:documentation> </xs:annotation> </xs:element> <xs:element name="forgdatum" type="xs:date"/> <xs:element name="futottkm" type="xs:float"/> <xs:element
name="repultora" type="xs:float"/> <xs:element name="hajozottora" type="xs:float"/> <xs:element name="szamlatipusa" type="xs:string"> <xs:annotation> <xs:documentation>helyesbítő/sztornó számla</xs:documentation> </xs:annotation> </xs:element> <xs:element name="penznem" type="xs:string"> <xs:annotation> <xs:documentation>a számla pénzneme</xs:documentation> </xs:annotation> </xs:element> <xs:element name="ajto" type="xs:string"/> </xs:schema> 26 Példa xml <?xml version="1.0" encoding="UTF-8"?> <szamla xmlns="http://www.apehhu/2005/szamla" xmlns:xsi="http://wwww3org/2001/XMLSchemainstance"> <fejlec> <elado> <nev>Könyv Bt</nev> <adoszam></adoszam> <cim>
<orszag>Magyarország</orszag> <telepules>Budapest</telepules> <irszam>1111</irszam> <kozternev>Seholnemvolt</kozternev> <kozterjell>utca</kozterjell> <hazszam>1</hazszam> </cim> </elado> <vevo> <nev>Kovács János</nev> <cim> <orszag>Magyarorszag</orszag> <telepules>Budapest</telepules> <irszam>1111</irszam> <kozternev>Nevenincs</kozternev> <kozterjell>ter</kozterjell> <hazszam>1</hazszam> </cim> </vevo> <szamlainfo> <sorszam>SZ0001</sorszam> <kialldatum>2005-05-01</kialldatum> <teljdatum>2005-04-30</teljdatum> <fizhatarido>2005-05-06</fizhatarido> <fizmod>készpénz</fizmod> </szamlainfo> </fejlec> <tetelek> <tetel id="1"> <termeknev>könyv</termeknev>
<besorszam>4903</besorszam> <nettoar>2000</nettoar> <afakulcs>5</afakulcs> <afaertek>100</afaertek> <bruttoar>2100</bruttoar> </tetel> <tetel id="2"> <termeknev>könyv</termeknev> <besorszam>4903</besorszam> <nettoar>5000</nettoar> <afakulcs>5</afakulcs> <afaertek>250</afaertek> <bruttoar>5250</bruttoar> </tetel> </tetelek> <osszesites> <afarovat id="1"> <afakulcs>5</afakulcs> <nettoar>7000</nettoar> <afaertek>350</afaertek> <bruttoar>7350</bruttoar> </afarovat> <vegosszeg> 27 <nettoarossz>7000</nettoarossz> <afaertekossz>350</afaertekossz> <bruttoarossz>7350</bruttoarossz> </vegosszeg> </osszesites> </szamla> 28