Forint és deviza megbízások - XML import

Az XML (Extensible Markup Language) egy olyan adatformátum-leíró nyelv szabvány, amely dokumentumok, hierarchikus szerkezetű adatok hatékony tárolását és megjelenítését teszi lehetővé.
Egy XML dokumentum logikai felépítését, szerkezetét a DTD-vel (Document Type Definition) adhatjuk meg. A DTD segítségével a dokumentum mezőkre ("nevet viselő egységekre", "elemekre") bontható.

Az Electra képes XML-formátumú file-okban megadott megbízásokat importálni. A továbbiakban megadjuk a forint átutalási megbízások (HUF), a deviza átutalási megbízások (DEV) és az inkasszó megbízások (INK) DTD-jét. Mindegyik esetben, egy XML adatban több átutalás (ill. inkasszó) is megadható.
A HUFTransactions DTD után egy példával bemutatjuk egy "Forint átutalási megbízások" XML-dokumentum fizikai felépítését.

A DTD-k megjegyzéseiben használt jelölések

An : n db karakterből álló alfanumerikus karaktersorozat

Nn : n db karakterből álló numerikus karaktersorozat,

9 : numerikus karakter.

Az Electra program az XML adatokban az ékezetes karaktereknek a következő kódolásait fogadja el: utf-8, utf-16, iso-8859-1, iso-8859-2. Az XML szabályai szerint, a mezők értékében előforduló < jel helyett az &lt;, a > jel helyett az &gt;, az & jel helyett az &amp; karaktersorozatot kell írni.

Forint átutalási megbízások


<!ELEMENT HUFTransactions ( CreationDateAndTime?, ScheduledDate?, Transaction* ) >
<!ATTLIST HUFTransactions version CDATA -- ennek a DTD-nek, azaz az adatformátumnak a verziószáma: "1.01" -- >

<!ELEMENT CreationDateAndTime ( #PCDATA ) -- ISO 8601 (ccyy-mm-ddThh:mm:ss), az adat elkészítésének időpontja -- >

<!ELEMENT ScheduledDate ( #PCDATA ) -- ISO 8601 (ccyy-mm-dd), az elküldés tervezett dátuma -- >

<!ELEMENT Transaction ( Originator, Beneficiary, Amount, RequestedExecutionDate?, RemittanceInfo?, CustomerSpecifiedReference? , StatisticalInfo? ) >
<!ATTLIST Transaction ProcessingMode ("VIBER"|"") "" -- a banki feldolgozás módja -- >


<!ELEMENT Originator ( Name?, Account ) -- a terhelendő számla és a megbízó adatai -- >

<!ELEMENT Name ( #PCDATA ) -- (A32) név (pl. megbízó vagy kedvezményezett neve) -- >

<!ELEMENT Account ( AccountNumber ) >

<!ELEMENT AccountNumber ( #PCDATA ) -- számla száma (pl. 16/24 karakteres GIRO számlaszám) -- >
<!ATTLIST AccountNumber Type ("GIRO"|"IBAN"|"") "" -- számlaszám típusa -- >

<!ELEMENT Beneficiary ( Name, CountryOfRegistration?, Account ) -- kedvezményezett adatai -- >

<!ELEMENT CountryOfRegistration ( CountryCode?, Country? ) -- bejegyzés országa -- >

<!ELEMENT CountryCode ( #PCDATA ) -- (A2) országkód (nagybetűvel) -- >

<!ELEMENT Country ( #PCDATA ) -- az ország megnevezése -- >

<!ELEMENT Amount ( #PCDATA ) -- (N15 vagy 999999999999999,99) átutalandó összeg -- >
<!ATTLIST Amount Currency CDATA -- ISO 4217, az összeg devizaneme: kötelezően HUF -- >

<!ELEMENT RequestedExecutionDate ( #PCDATA ) -- ISO 8601 (ccyy-mm-dd), értéknap (esedékesség napja) -- >

<!ELEMENT RemittanceInfo ( Text* ) -- (4 x A32) közlemény -- >

<!ELEMENT Text ( #PCDATA ) -- szabad formátumú szöveg -- >

<!ELEMENT CustomerSpecifiedReference ( #PCDATA ) -- (A6) bizonylatszám -- >

<!ELEMENT StatisticalInfo ( StatisticalCode ) >

<!ELEMENT StatisticalCode ( #PCDATA ) -- (A3) jogcímkód -- >

Példa

1. tétel
Jogosult neve: Kiss János
Jogosult számlaszáma: 400018-11111111-11111111
Bizonylatszám: 1024
Közlemény 1. sora: A K02340234 sz. szla kiegyenl.
Utalandó összeg: 100 000 Ft
Az összeg devizaneme: forint
Értéknap: 2002.08.25

2. tétel
Jogosult neve: Nagy János
Jogosult számlaszáma: 11501402-11111111-22222222
Utalandó összeg: 150 000 Ft

3. tétel
Jogosult neve: Nagy Lajos
Jogosult számlaszáma: 11501402-11111111
Utalandó összeg: 200 000 Ft
Értéknap: 2002.08.26

<?xml version="1.0" encoding="iso-8859-2"?>
<HUFTransactions>
<Transaction>
<Originator>
<Account>
<AccountNumber>1150140210000025</AccountNumber>
</Account>
</Originator>
<Beneficiary>
<Name>Kiss János</Name>
<Account>
<AccountNumber>144000181111111111111111</AccountNumber>
</Account>
</Beneficiary>
<Amount Currency="HUF">100000.00</Amount>
<RequestedExecutionDate>2002-08-25</RequestedExecutionDate>
<RemittanceInfo>
<Text>A K02340234 sz. szla kiegyenl.</Text>
</RemittanceInfo>
<CustomerSpecifiedReference>1024</CustomerSpecifiedReference>
</Transaction>
<Transaction>
<Originator>
<Account>
<AccountNumber>1150140210000025</AccountNumber>
</Account>
</Originator>
<Beneficiary>
<Name>Nagy János</Name>
<Account>
<AccountNumber>115014021111111122222222</AccountNumber>
</Account>
</Beneficiary>
<Amount>150000.00</Amount>
</Transaction>
<Transaction>
<Originator>
<Account>
<AccountNumber>1150140210000025</AccountNumber>
</Account>
</Originator>
<Beneficiary>
<Name>Nagy Lajos</Name>
<Account>
<AccountNumber>1150140211111111</AccountNumber>
</Account>
</Beneficiary>
<Amount>200000.00</Amount>
<RequestedExecutionDate>2002-08-26</RequestedExecutionDate>
</Transaction>
</HUFTransactions>

A szöveget csak a jobb olvashatóság érdekében tördeltük be. Az XML adat hasonló formázása megengedett, de nem szükséges.

Deviza átutalási megbízások


<!ELEMENT DEVTransactions ( CreationDateAndTime?, ScheduledDate?, Transaction* ) >
<!ATTLIST DEVTransactions version CDATA -- ennek a DTD-nek, azaz az adatformátumnak a verziószáma: "1.01" -- >

<!ELEMENT CreationDateAndTime ( #PCDATA ) -- ISO 8601 (ccyy-mm-ddThh:mm:ss), az adat elkészítésének időpontja -- >

<!ELEMENT ScheduledDate ( #PCDATA ) -- ISO 8601 (ccyy-mm-dd), az elküldés tervezett dátuma -- >

<!ELEMENT Transaction ( Originator, Beneficiary, Amount, TargetCurrency, RequestedExecutionDate?, RemittanceInfo?, TransferInstruction?, ImportLicence?, Charge, StatisticalInfo? ) >
<!ATTLIST Transaction Urgent ("yes"|"no") "no" -- sürgős -- >

<!ATTLIST Transaction RequestedExecutionDay ("T"|"T+1"|"T+2") "T+2" -- értéknap, (T: tárgynap) -- >


<!ELEMENT Originator ( Name?, Address?, FinancialInstitution?, Account ) -- a terhelendő számla és a megbízó adatai -- >

<!ELEMENT Name ( #PCDATA ) -- (A35) név (pl. a megbízó vagy a kedvezményezett neve) -- >

<!ELEMENT Address ( FreeFormatPostalAddress | StructuredPostalAddress ) -- postai cím (csak az egyik formában kell megadni) -- >

<!ELEMENT FreeFormatPostalAddress ( Text* ) -- (4 x A35) szabad szöveggel megadott cím -- >

<!ELEMENT StructuredPostalAddress ( Street?, PostOfficeBox?, PostalCode?, City?, CountryCode?, Country? ) -- formázott, elemekre bontott postai cím -- >

<!ELEMENT Street ( #PCDATA ) -- (A35) utca, házszám -- >

<!ELEMENT PostOfficeBox ( #PCDATA ) -- postafiók -- >

<!ELEMENT PostalCode ( #PCDATA ) -- irányítószám -- >

<!ELEMENT City ( #PCDATA ) -- helység -- >

<!ELEMENT CountryCode ( #PCDATA ) -- (A2) országkód (nagybetűvel) -- >

<!ELEMENT Country ( #PCDATA ) -- az ország megnevezése -- >

<!ELEMENT FinancialInstitution ( Name, FinancialInstitutionId?, Address? ) -- bank, pénzintézet -- >

<!ELEMENT FinancialInstitutionId ( #PCDATA ) -- a bank kódja -- >
<!ATTLIST FinancialInstitutionId Type ("BIC"|"SWIFT"|"BLZ") "BIC" -- a bank kódjának a típusa -- >

<!ELEMENT Account ( AccountNumber ) -- számla -- >

<!ELEMENT AccountNumber ( #PCDATA ) -- számla száma -- >
<!ATTLIST AccountNumber Type ("GIRO"|"IBAN"|"") "" -- számlaszám típusa -- >

<!ELEMENT Beneficiary ( Name, Address?, CountryOfRegistration, FinancialInstitution, Account ) -- kedvezményezett adatai -- >

<!ELEMENT CountryOfRegistration ( CountryCode?, Country? ) -- bejegyzés országa -- >

<!ELEMENT Amount ( #PCDATA ) -- (N15 vagy 999999999999999,99) átutaladó összeg -- >
<!ATTLIST Amount Currency CDATA -- ISO 4217, (A3) az összeg devizaneme (nagybetűvel) -- >

<!ELEMENT TargetCurrency ( #PCDATA ) -- ISO 4217, (A3) teljesítés devizaneme -- >

<!ELEMENT RemittanceInfo ( Text* ) -- (4 x A35) közlemény -- >

<!ELEMENT Text ( #PCDATA ) -- szabad formátumú szöveg -- >

<!ELEMENT TransferInstruction ( InidividualExchangeRate?, SWIFTFaximileRequested?, FreeFormatInstruction? ) -- utasítások a számlavezető bank részére -- >

<!ELEMENT InidividualExchangeRate ( #PCDATA ) -- egyedi árfolyam -- >

<!ELEMENT SWIFTFaximileRequested ( #PCDATA ) -- FAX-szám; erre a számra kéri megküldeni a SWIFT üzenet másolatát -- >

<!ELEMENT FreeFormatInstruction ( Text* ) -- közlemény a bank számára -- >

<!ELEMENT ImportLicence ( ImportLicenceNumber, ImportLicenceDate? ) >

<!ELEMENT ImportLicenceNumber ( #PCDATA ) -- (A35) behozatali engedély száma -- >

<!ELEMENT Charge ( ChargeOption ) -- bankköltségek -- >

<!ELEMENT ChargeOption ( #PCDATA ) -- "BEN", "SHA", "OUR"; költségviselő: BEN=kedvezményezett, SHA=megosztott költség, OUR=megbízó -- >

<!ELEMENT StatisticalInfo ( StatisticalCode ) >

<!ELEMENT StatisticalCode ( #PCDATA ) -- (A3) jogcímkód -- >