Üzenet váltási formátumok EDI és XML Előadásvázlat dr. Kovács László
Üzenetv zenetvált ltás szerepe Intra- és Interkapcsolatokban fontos elem az adatcsere Modulonként nt tipikus üzenetfajt zenetfajták fedezhetők fel Kapcsolat formái: Szabad szöveg (e-mail): előnye az egyszerűség és az olcsóság, viszont hátr tránya, hogy nem automatizálhat lható Adatszerű (tábl blázatok): előnye a tömörs rség és hatékonys konyság. Automatizálhat lható, de kevésb sbé rugalmas ad-hoc elemekre Struktúrált: előnye a viszonylagos tömörs rség és hatékonys konyság. Részben utomatizálhat lható, lehetőség rugalmas ad-hoc elemekre. A strukturálts ltság különb nböző szinteken jelenhet meg EDI XML
Üzenetv zenetvált ltás szerepe Kapcsolat fizikai formái pap apír alapú megbízhat zhatóság olvashatóság kis költs ltség off-line elektronikus egyszerűség tömörs rség közép költs ltség on-line elektronikus gyorsaság hatékonys konyság nagy költs ltség
EDI kialakulása Cél: szabványos és hatékony üzleti üzenetv zenetvált ltási módszer Lépések, háttere: 1948: USA száll llítások Európába, heterogén környezet 1968: TDCC - USA száll llítm tmányoz nyozási üzenetek szabványa 1969: Tradacoms UK kereskedelmi üzenetek szabványa 1987: EDIFACT UNO egységes gesítés s (X12 szabványk nykód) 2002: XML-EDIFACT megjelenése
EDI üzenetv zenetvált ltási csatorna
EDI üzenetv zenetvált ltási csatorna Nemzetközi zi felügyelet teljes infrastruktúrát lefedi
EDI üzenetv zenetvált ltási csatorna EDI: elektronikus adatcsere interfész keretrendszere Vállalati egys gységek gek közötti elektronikus adatcsere formátuma Jellemzői: szabványos : szabvány strukturális elemek megbízhat zhatóság nyitottság széles körben elterjedt automatizálhat lható: kezelő programok széles köre strukturált, összetett: funkcionális adategységek gek védetts dettség: titkosítás, s, nyomkövet vetés off-line kapcsolat orientált
EDI üzenetv zenetvált ltási csatorna Ügyviteli adatok/ funkciók definíci ciói mit akarunk közölni EDI üzenetek / EDI szintaxis szabványok (UN/EDIFACT) Üzenetek szintaxisa Adatvédelmi delmi szolgáltat ltatások hitelesítés Üzenettov zenettovább bbító szabványok X.400 Hálózati szabvány X.25 Üzenetek magasszintű kezelése Hálózati szint
EDI üzenet formátum SAMPLE MESSAGE (minimum requirements) UNH+19134+IFTMCS:D:98B:UN:ENET30' BGM+770+19134+9' DTM+137:20011110:203' LOC+33+USLGB:::LONG BEACH' LOC+34+AUSYD:::SYDNEY' LOC+7+USLAX:::LOS ANGELES' LOC+88+AUSYD:::SYDNEY+CTLPB' RFF+BN:SHIPCO65432' TDT+20+251+1++FES+++9104990:::KAPITAN KONEV' NAD+CZ++ACME Exports:123 High Street:A City:NSW 2000' NAD+MS+CARRIER-ID' NAD+MR+54255@TG32' EQD+CN+++2' EQN+4' FTX+AAI+++20 foot containers, food quality' UNT+16+19134'
EDI üzenet formátum Az EDI több területf letfügg ggő szabványt nytípust foglal egybe UN/EDIFACT : United Nations EDI szabvány komponensei szintaxis (adatelemek formátuma, karakterkészlet) üzenet (üzenet felépítése, típusai) Adatszótár, kód (szemantika, kódt dtábl blák) Kialakított területek: MD1 Kereskedelem MD3 Vám és közvetett adók MD5 Építőipar MD7 Biztosítás... MD2 Közlekedés MD4 Pénzügy MD6 Statisztika MD8 Utazás, szabadidő
Üzenet struktúra szintjei: EDI üzenet formátum egyszerű adatelem összetett adatelem szegmens üzenet funkcionális csoport adatcsomag ember családi neve ember neve ember adatai egy űrlap azonos űrlapok együttese egyszerre elküldött csoportok Service String Advice UNA Conditional +----- Interchange Header UNB Mandatory +--- Functional Group Header UNG Conditional +- Message Header UNH Mandatory User Data Segments As required +- Message Trailer UNT Mandatory +--- Functional Group Trailer UNE Conditional +----- Interchange Trailer UNZ Mandatory
EDI üzenet formátum Minta kódlap részlet UNH 1 Message Header BGM 1 Explanation of message function DTM 1 Date/time of preparation LOC up to 10 Port of loading, port of discharge RFF up to 10 References with the consignment TDT 1 Vessel, carrier details EQD up to 999 Container type, shipper/carrier EQN 1 per EQD Number of containers FTX up to 9 per EQD General container information UNT Message Trailer UNH+19134+IFTMCS:D:98B:UN:ENET30' BGM+770+19134+9' DTM+137:20011110:203' LOC+33+USLGB:::LONG BEACH EQD+CN+++2' EQN+4' FTX+AAI+++20 foot containers, food quality' UNT+16+19134'
EDI üzenet formátum Minta kódlap részlet SG1 LOC up to 10 per message LOC+33+USLGB:::LONG BEACH' LOC+34+AUSYD:::SYDNEY' 3227 Location type indicator +7 Place of delivery or +33 Port of Discharge or +34 Port of Loading or +88 Place of receipt or +91 Place of document issue C517 3225 UN LOCODE 3224 :Name of location in free text C519 3223 :ACOS Terminal code LOC+33+USLGB:::LONG BEACH' LOC+34+AUSYD:::SYDNEY' LOC+7+USLAX:::LOS ANGELES' LOC+88+AUSYD:::SYDNEY+CTLPB' RFF+BN:SHIPCO65432'
Az XML nyelv XML: extensible Markup Language (kiterjeszthető jelölő nyelv) Napjaink egyik kulcsfogalma az informatikában Fő jellemzői: Adat és metaadat együtt tárolt Szöveges formátum Tetszőleges tartalom tárol rolása Rugalmas szerkezet Gazdag készlete a kezelő felületi leti szabványoknak <?xml version= 1.0"?> <!-- ez egy minta --> <könyvek> <könyv ikod="2"> <cim> XML </cim> <ev>2003</ev> <olvasoterem/> </könyv> </könyvek>
XML kialakulása Az XML nyelv 2000 körül jelent meg, de gyökerei 1960-ig nyúlnak vissza Tört rténet netének nek főbb állom llomásai sai: 1967: Tunnicliffe tanulmánya nya (tartalom és formátum tum) 1969: GML: Generalized Markup Language (form formátum orientált lt) 1983: SGML: Standard Generalized Markup Language (ANSI) 1993: HTML HyperText Markup Language (WEB) 1998: XML (extensible Markup Language) :XMLSchema :XQuery :XHTML :XForm
XML szerkezete Elem, tag viszonya elem tag (szepar szeparáló) nyitótag tag zárótag <?xml version= 1.0"?> <könyvek> <könyv ikod="2"> <cim> &X; </cim> <ev>2003</ev> ISBN1234 </könyv> </könyvek> tartalom könyv szövegtartalom elemtartalom cim ev
Helyesen formált XML dokumentum A dokumentum felépítése dokumentum := prolog jelölő_elem egyéb* Elemek típusai pusai: - jelölő elem - feldolgozási utasítás - megjegyzés <?xml version= 1.0"?> <könyvek> <könyv ikod="2"> <cim> &X; </cim> <ev>2003</ev> <olvasoterem/> </könyv> </könyvek> <!-- ez egy minta --> Az elemek megadása elemtagokkal tört rténik A prolog feldolgozás előtti utasítást st jelent Normalizálás: minden szeparáló szövegr vegrész egy karakter hoszú
Helyesen formált XML dokumentum Megkötések a felépítésre Egyetlen fő, gyökér jelölő elem létezik A jel elölő elemeknek két formátuma lehet: kéttag ttagú elem: <tagn agnév > tartalom </tagn tagnév> egytagú elem: <tagn tagnév.. /> Az elem neve egy tetszőleges szó lehet <?xml version= 1.0"?> <könyvek> <könyv ikod="2"> <cim> &X; </cim> <ev>2003</ev> <olvasoterem/> </könyv> </könyvek> <!-- ez egy minta --> Jelölő elemek egymásba ágyazhat gyazhatók, de átlapol tlapolás nem lehet feldolgozási utasítás elem alakja: <?kezel kezelő.?> megjegyzés elem alakja: <!--. -->
Helyesen formált XML dokumentum Megkötések a felépítésre Feldolgozási utasítás s (PI): az XML feldolgozó programnak szól Az elemekhez elemjellemzők (attribútumok) tumok) rendelhetők Elemjellemző alakja: <tag.. jellemző_neve _neve= ért rték..> <?xml version= 1.0"?> <könyvek> <könyv ikod="2"> <cim> &X; </cim> <ev>2003</ev> <olvasoterem/> </könyv> </könyvek> <!-- ez egy minta --> Egy elemhez több elemjellemző is rendelhető Az elemjellemző ért rtéke elemi Az elemjellemző a elemhez szorosan kötődő ért rtéket tárol
Névterek használata A jelölőelemek elemek neve a jelentésre utal A felhasználók maguk jelölhetik lhetik ki az elemek neveit Témak makör együttesekben nagy az esélye a homonímáknak Az elemnév önmag nmagában nem elegendő egyértelm rtelmű azonosításra sra Megoldás: a név kibővítése a feldolgozó azonosításval sval Névt vtér: a feldolgozó program azonosítója Névt vtér szokásos sos alakja: URI Egy dokumentumban több névt vtér is élhet A névterek elemhez kötése alias nevekkel tört rténik <cim> Budapest Nagy u 23 </cim> <cim> Egri csillagok </cim> http://a.b.hu/konyvek books
Névterek használata Névt vtér használat lépései Névt vtér és alias összek sszekötése se: <tagn tagnév xmlns:alias= URI URI > Névt vtér kötése elemhez: <alias:tagn alias:tagnév.> </alias:tagn alias:tagnév> Névt vtér kötése elemjellemzőhöz: <tagn tagnév alias:jellemző= ért rték > <books:cim xmlns:books= http://a.b.hu/konyvek > Egri csillagok </books:cim> http://www.w3.org/2000/10/xmlschema : W3C XMLSchema névtere http://www.w3.org/1999/xsl/transform : XSL feldolgozó névtere http://www.w3.org/1999/xlink : XLink névtere
XML létrehoz trehozása Mintafeladat: tanfolyam nyilvántart ntartás Gyökérelem Jellemzők, elemek Prolog PI Elemhierarhia <?xml version= 1.0 1.0?> <konferencia konferencia> <cim cim> XML alapok </cim cim> <helyszin helyszin> XXVI ea. </helyszin helyszin> <oktato adsz= 256154 256154 > <nev nev> Komor Tibor </nev nev> <lakcim lakcim> Zoro ut 45 </lakcim lakcim> </oktato oktato> <hallgatok hallgatok> <hallgato hallgato> <nev nev> Okosodo Olga</nev nev> <lakcim lakcim> Kun u 6 </lakcim lakcim> </hallgato hallgato> </hallgatok hallgatok> </konferencia konferencia>
Sémakezel makezelés igénye <?xml version= 1.0"?> <rendelés id="2"> <vevo ikod="12"> <cim> Bp A u 5 </cim> </vevo> <termek>kapa</termek> <ár>231</ár> </rendelés> rendelés feldolgozó <?xml version= 1.0"?> <rendelés id="2"> <vevo> Bal Bottond <lakcim> Bp A 5 </lakcim> </vevo> <termek kod="2"/> <ár>231</ár> </rendelés> A bejövő adatok tartalma, formátuma rögzített célszerű egy előzetes séma ellenőrzés
Sémakezel makezelés igénye Az igényelt sémale maleírás elemei elemek megadása elemek belső szerkezete elemhierarchia elemjellemzők meghatároz rozása elemek lemek, elemjellemzők számoss mosság korlátoz tozása elemek lemek, elemjellemzők ért rtékének korlátoz tozása sa, típusa ért rték egyediség g ellenőrz rzése hivatkozási integritás ellenőrz rzése szimb zimbólumok definíá íálása <?xml version= 1.0"?> <rendelés id="2"> <vevo ikod="12"> &LI; <cim> Bp A u 5 </cim> </vevo> <termek>kapa </termek> <ár>231</ár> </rendelés> <?xml version= 1.0"?> <rendelés id="2"> <vevo> Bal Bottond <lakcim> Bp A 5 </lakcim> </vevo> <termek kod="2"/> </rendelés>
DTD sémale maleíró Az SGML nyelvből örökl klődött Nem XML formátum tumú, egyedi formalizmus <!DOCTYPE kocka [ <!ELEMENT kocka (kocka kocka+) > ]> A DTD leírás az XML dokumentum elején helyezkedik el A DTD leírás kifejtése szerepelhet küls lső dokumentumban is Belső DTD: <!DOCTYPE gyökérelem_neve [ séma_le ma_leírás ]> Küls lső DTD: <!DOCTYPE gyökérelem_neve SYSTEM "állom llomány ny"'> A DTD alapelemei: - jelölő elemek - elemjellemzők - szimbólumok, egyedek
A DTD szerkezeti típusai pusai: DTD elemei Jelölő elem megadása <!ELEMENT elem_név szerkezet> EMPTY : üres elem, egytagú tartalom elem (#PCDATA) : szöveg ért rtéket tartalmazó elem ANY : tetszőleges tartalom megengedett (szerkezet szerkezet) : gyerekelemeket tartalmazó elem (ELEMENT-ONLY típus pus) (#PCDATA szerkezet)* : vegyes, szöveget és gyerek elemeket is tartalmazó elem (MIXED típus pus) <!ELEMENT uzenet (kitol, kinek, tema, leiras)> <!ELEMENT kitol (#PCDATA) > <!ELEMENT kinek (#PCDATA) >
DTD elemei Jelölő elem megadása A DTD elemek számoss mosság-vizsg vizsgálata (x)* : tetszőleges számú előfordul fordulás (x)+ : egy vagy több előfor fordul ulás (x)? : nulla vagy egy előfordul fordulás (x) : pontosan egy előfordul fordulás Struktúra ra megadása sa: e1, e2 : az elemek szekvenciája e1 e2 : az egyik elem fordul elő a két elemből <!ELEMENT udvar (gazda, kutya+, ((kakas?,tyuk*) róka*), diszno+) >
DTD elemei Elemjellemző megadása <!ATTLIST elem jellemzö_neve tipus alapért rték> DTD elemjellemző típusai: CDATA : szöveges ért rték (e1 e2) : ért rtéklista ID : egyedi azonosító ért rtéket tartalmaz a jellemző IDREF : egy ID ért rtékét tartalmazza IDREFS : több ID ért rtékeit tartalmazza NMTOKEN : a jellemző egy XML azonosító nevet tartalmaz ENTITY : egy egyed szimbólum ért rtékét tárolja a jellemző NOTATION : egy küls lső objektumra utalást tartalmaz az ért rték
DTD elemei Elemjellemző megadása DTD elemjellemző alapért rtékei: #REQUIRED : kötelez telező explicit ért rtéket tartalmaznia #FIXED ért rték : egy rögz gzített ért rtékkel rendelkezik #IMPLIED : nem kötelez telező ért rtéket megadni ért rték : az alapértelmez rtelmezési ért rték kijelölésére szolgál <!ELEMENT tanar (nev, szak)> <!ELEMENT tantargy (tnev, osztaly) > <!ATTLIST tanar kod ID #REQUIRED> <!ATTLIST tantargy kod ID #REQUIRED> <!ATTLIST tantargy oktato IDREF #IMPLIED
DTD minta <!DOCTYPE TVmusor [ <!ELEMENT TVmusor (ado+)> <!ELEMENT ado (leiras leiras, nap*) > <!ELEMENT leiras (PCDATA)> <!ELEMENT nap (datum, (szunet musorszam+)+) > <!ELEMENT datum (#PCDATA) > <!ELEMENT szunet EMPTY > <!ELEMENT musorszam (cim cim, kezdes, leiras?) > <!ELEMENT cim (#PCDATA) > <!ELEMENT kezdes (#PCDATA) > <!ATTLIST TVmusor datum CDATA #REQUIRED> <!ATTLIST ado tulaj CDATA #IMPLIED> <!ATTLIST musorszam korhatar (N A14 A16 A18) #REQUIRED> <!ENTITY LK "Lancos Kotta kiado"> ]>