az xml bevezetésusers.iit.uni-miskolc.hu/ficsor/osztottseg/xmlbev.pdf · 2007. 10. 2. ·...

41
XML XML ( ( bevezet bevezet é é s) s) Az XML Az XML Bevezet Bevezet é é s s Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 10. 02.

Upload: others

Post on 17-Feb-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

  • XMLXML ((bevezetbevezetéés)s)

    Az XMLAz XMLBevezetBevezetééssFabók ZsoltFicsor Lajos

    Általános Informatikai TanszékMiskolci Egyetem

    Utolsó módosítás: 2007. 10. 02.

  • XMLXML ((bevezetbevezetéés)s)

    2

    SzSzüükskséégessgesséégege

    Java: plattform független programok

    XML: plattform független adatok

  • XMLXML ((bevezetbevezetéés)s)

    3Az XML kialakulAz XML kialakuláássáának tnak töörtrtééneteneteSGMLSGML

    1986 – az ISO szabványosítja az SGML-t (Standard Generalized Markup Language)Az SGML egy metanyelv – egy adott nyelvvel írunk le egy másikatAz SGML mindent tud, amit egy metanyelvtől elvárunkHátrány: drága, nehéz kezelhetőség, nagy szakértelem kell egy dokumentum megírásához

  • XMLXML ((bevezetbevezetéés)s)

    4Az XML kialakulAz XML kialakuláássáának tnak töörtrtéénete (folyt.)nete (folyt.)HTML I.HTML I.

    1990 - Tim Bernes-Lee kiadja a HTML-tA HTML definícióját SGML-ben adta megElőny: ingyenes, könnyen kezelhetőA ló túlsó oldala: túl egyszerű lett, így összetettebb feladatok elvégzésére nem alkalmasMásik gond: különböző szervezetek, saját kiegészítésekkel látták el

  • XMLXML ((bevezetbevezetéés)s)

    5Az XML kialakulAz XML kialakuláássáának tnak töörtrtéénete (folyt.)nete (folyt.)HTML II.HTML II.

    Eredmény: Az eredetileg egységes képet felváltotta az "úgy értelmezem a HTML-t, ahogy gondolom" elvA HTML célja a dokumentum megjelenítése (képek, fontok, táblázatok ...)Ez a része igen részletes, szinte az összes formázási technikával rendelkezikLehetőség strukturált dokumentum létrehozására

  • XMLXML ((bevezetbevezetéés)s)

    6Az XML kialakulAz XML kialakuláássáának tnak töörtrtéénete (folyt.)nete (folyt.)HTML III.HTML III.

    Gond: különböző programok a különbözőformázásokat másképpen értelmezhetik (a fent említett elv miatt)A HTML nem rugalmasNincs lehetőség saját tag-eket megadni

  • XMLXML ((bevezetbevezetéés)s)

    7Az XML kialakulAz XML kialakuláássáának tnak töörtrtéénete (folyt.)nete (folyt.)HTML IV.HTML IV.

    Saját fejlesztés két akadálya:Szinte kizárt, hogy az otthon a sufniban fejlesztett HTML-t a böngészők úgy kezelik, ahogy elterveztük (készíthetünk ugye saját böngészőt, de minek?)A W3C elég kémény megkötéseket tesz a HTML tagekkel szemben

  • XMLXML ((bevezetbevezetéés)s)

    8Az XML kialakulAz XML kialakuláássáának tnak töörtrtéénete (folyt.)nete (folyt.)HTML V.HTML V.

    Egy dokumentum 2 részre oszthatóadat központú rész (content style) formázott rész (presentation style)

    A HTML-ben ez a két rész összemosódikEredmény: adat változik -> forma is újra generálódik (és fordítva)A HTML képtelen azonos adatokat a felhasználóáltal megadott formában megjeleníteni

  • XMLXML ((bevezetbevezetéés)s)

    9Az XML kialakulAz XML kialakuláássáának tnak töörtrtéénete (folyt.)nete (folyt.)HTML VI.HTML VI.

    DHTML és javascript volt egy próbálkozásEredmény: Totális káosz a böngészők és weboldalak terén.

  • XMLXML ((bevezetbevezetéés)s)

    10Az XML kialakulAz XML kialakuláássáának tnak töörtrtéénete (folyt.)nete (folyt.)MegjelenMegjelenííttéés s éés les leíírrááss

    Két szó: megjelenítés és leírásHTML az információt megjelenítiPélda: Az ég kék és a víz nedves.Ezt a HTML gond nélkül képes megjeleníteniArra nincs utalás, hogy tulajdonképpen egzakt módon mit is jelent, hogy "kék" és hogy "nedves"(Hogy ezek az alany tulajdonságai, az sehol nincs megadva!)

  • XMLXML ((bevezetbevezetéés)s)

    11Az XML kialakulAz XML kialakuláássáának tnak töörtrtéénete (folyt.)nete (folyt.)XMLXML

    Ez a példa gond nélkül megadható SGML-ben, persze komoly nehézségek áránIgény valami újra, megfoghatóbbra, használhatóbbra1996 - Jon Bosak kéri a W3C-től, hogy SGML-t használhasson WEB-technológiákbanKészítettek egy olyan "valami"-t, ami rendelkezik az SGML összes eszközével, de nagyságrendekkel könnyebben kezelhető

  • XMLXML ((bevezetbevezetéés)s)

    12Az XML kialakulAz XML kialakuláássáának tnak töörtrtéénete (folyt.)nete (folyt.)XMLXML

    A "valami" nevet is kapott: XML (eXtensibleMarkup Language)1998. február 10. - A W3C bejelenti az XML 1.0-át

  • XMLXML ((bevezetbevezetéés)s)

    13XML felXML felééppííttééseseDokumentum kDokumentum köözpontzpontúú XMLXML

    Az XML fájlokat két csoportba oszthatjuk:dokumentum központú XMLadat központú XML

    1997-es megjelenése után előszerettel használták dokumentációk leírásánál, hisz "könnyen" olvashatóMost a továbbiakban elsősorban az XML adat központú használatával foglalkozunk.

  • XMLXML ((bevezetbevezetéés)s)

    14XML felXML felééppííttéése (folyt.)se (folyt.)AdatkAdatköözpontzpontúú XML XML

    Erősen struktúrált adatok tárolására használják (adatbázis szöveges adatai, tranzakciók ...)Általában program állítja előXML platform függetlenElőny: különböző OS-ek közti kommunikációnak nincs akadálya Intranet illetve Internet környezetben

  • XMLXML ((bevezetbevezetéés)s)

    15

    EgyszerEgyszerűű XML pXML péélda I.lda I.

    1063753377

  • XMLXML ((bevezetbevezetéés)s)

    16

    EgyszerEgyszerűű XML pXML péélda II.lda II.

    Ramrod

    Highway Patrol

    bye

  • XMLXML ((bevezetbevezetéés)s)

    17XML dokumentumXML dokumentumBevezetBevezetőő elem I.elem I.

    Minden XML dokumentum egy bevezető elemmel indulMegadja, hogy XML dokumentumról van szóMegadhat kiegészítéseket, metaadatokat a dokumentumra vonatkozóanA feldolgozó programnak szóló utasítások megadási formája:

    ahol művelet a feldolgozó program által ismert utasítás

  • XMLXML ((bevezetbevezetéés)s)

    18XML dokumentum (folyt.)XML dokumentum (folyt.)BevezetBevezetőő elem II.elem II.

    Leggyakoribb eset: megadja az XML verzióját, és a karakter kódolást

    A bevezető elem elhagyható. Ha nincs akkor a program feltételezi, hogy XML 1.0-ról van szó, UTF-8 karakter kódolással

  • XMLXML ((bevezetbevezetéés)s)

    19XML dokumentum (folyt.)XML dokumentum (folyt.)Elemek I.Elemek I.

    Az XML dokumentum egységei az elemek.Minden elemnek van nyitó és záró tag-je, és lehet(nek) attribútumai és tartalma

    tartalom

  • XMLXML ((bevezetbevezetéés)s)

    20XML dokumentum (folyt.)XML dokumentum (folyt.)Elemek II.Elemek II.

    Az elemnév [a-z A-Z _ - :] elemekből állhat, kivéve az xml karaktersorozatot bármely betűállásban, mert az fentartott név!Kis és nagy betűk között különbséget tesz!tartalom lehet:

    további elemszövega kettő együtt

    Tartalom nélküli elem:

  • XMLXML ((bevezetbevezetéés)s)

    21XML dokumentum (folyt.)XML dokumentum (folyt.)AttribAttribúútumoktumok

    Megadásuk az elem nyitó tag-jébenEgy attribútumhoz csak egy érték tartozhatA nevekre ugyanazok a megadási szabályok vonatkoznak, mint az elemnevekreAjánlás: Hasonló nevek kerülése (olvashatóságot rontja)Speciális attribútum család: xml:-tal kezdődik

    ...

  • XMLXML ((bevezetbevezetéés)s)

    22XML dokumentum (folyt.)XML dokumentum (folyt.)Az egyszerAz egyszerűű ppéélda lda éértelmezrtelmezéésese

    1063753377

    ...

    BevezetBevezetőőelemelemGyGyöökkéérr

    elemelem

    TartalmazottTartalmazottelemelem

    ÜÜres elemres elem

    ElemnElemnéévv AttributumAttributumnnéévv

    AttributumAttributuméértrtéékeke

    TartalomTartalom

    ZZáárróó tagtag

  • XMLXML ((bevezetbevezetéés)s)

    23XML dokumentum (folyt.)XML dokumentum (folyt.)JelentJelentééss

    Egy XML dokumentum tartalma egy hierachikusstruktúrát ír le - fával ábrázolhatóA tartalmazott elem a tartalmazó alatt helyezkedik elAmelyik elemet nem tartalmaz más elem, az a gyökérEgy dokumentumnak csak egy gyökere lehet (egy fával ábrázolható)

  • XMLXML ((bevezetbevezetéés)s)

    24XML dokumentum (folyt.)XML dokumentum (folyt.)Az egyszerAz egyszerűű ppéélda szerkezetelda szerkezete

    1063753377

    elemelem

    atribatribúútumtum

    2

    sequence

    4

    id

    "localhost"

    name

    host

    "GMT+0"

    timeZone 1063753377

    sentTime

    "no"

    need

    response

    sender

    sending éértrtéékk

  • XMLXML ((bevezetbevezetéés)s)

    25XML dokumentum (folyt.)XML dokumentum (folyt.)Az egyszerAz egyszerűű ppéélda szerkezete (folyt.)lda szerkezete (folyt.)

    2

    sequence sender

    3

    count

    "plain"

    type Ramrod

    message

    "plain"

    type Highway Patrol

    message

    "command"

    type bye

    message

    messages

    sending

    Ramrod

    Highway Patrol

    bye

  • XMLXML ((bevezetbevezetéés)s)

    26XML dokumentum (folyt.)XML dokumentum (folyt.)WellWell FormedFormed I.I.

    Egy XML dokumentumnak JÓL FORMÁLTNAK KELL LENNIEEgy csakis egy gyökér eleme lehet egy dokumentumnakMinden elemet le kell zárni, nem lehet lezáratlan elemSzigorúbb szabályok, mint a HTML-nél

  • XMLXML ((bevezetbevezetéés)s)

    27XML dokumentum (folyt.)XML dokumentum (folyt.)WellWell FormedFormed II.II.

    HTML:

    első cellamásodik cellamár a második sor

    XML:

    első cellamásodik cella már a második sor

  • XMLXML ((bevezetbevezetéés)s)

    28XML dokumentum (folyt.)XML dokumentum (folyt.)WellWell FormedFormed III.III.

    Nincs lehetőség "átlapolásra" (overlapping)HTML:

    Helló Világ

    XML:Helló Világ

  • XMLXML ((bevezetbevezetéés)s)

    29XML dokumentum (folyt.)XML dokumentum (folyt.)WellWell FormedFormed IV.IV.

    Az attribútum értékeit kötelezően "" között kell megadni.HTML:

    ...

    XML:

    ...

  • XMLXML ((bevezetbevezetéés)s)

    30XML dokumentum (folyt.)XML dokumentum (folyt.)WellWell FormedFormed V.V.

    A szöveg mezőben szereplő , " karaktereket minden esetben kvótázni kell<, >, és " formában kell őket szerepeltetni (előre definiált "entitások")Megjegyzés formátuma:

  • XMLXML ((bevezetbevezetéés)s)

    31XML dokumentum (folyt.)XML dokumentum (folyt.)WellWell FormedFormed VI.VI.

    Bizonyos karakterek (mint például a < >) speciális jelentéssel bírnak, így csak arra a célra használhatók.Miért is fontos a jól formáltság?Egyszerű: a feldolgozást (melyet program(ok) végez(nek)) segíti.Egy feldolgozó programnak joga van előfeldogozásként elhagyni a "whitespace" karaktereket.

  • XMLXML ((bevezetbevezetéés)s)

    32XML dokumentum (folyt.)XML dokumentum (folyt.)WellWell FormedFormed VII.VII.

    A feldolgozás során érintetlenül hagyandókaraktersorozatot CDATA blokkba zárhatjuk:

    Egy CDATA blokk tehát fenntartott és whitespacekaraktereket is tartalmazhat.

  • XMLXML ((bevezetbevezetéés)s)

    33XML dokumentum (folyt.)XML dokumentum (folyt.)WellWell FormedFormed VIII.VIII.

    Összefoglalva a jól formáltság szabályait:a névalkotás és az elemképzés szabályainak betartásaminden elemet le kell zárniminden attribútum értéknek "" karakterek között kell állniaegy elem egy másik elemet csak teljes egészében tartalmazhatpontosan egy gyökér elemnek kell lenniea tartalomban és az attribútum értékben a fenntartott karakterek helyettesítése az előre definiált entitásokkal.

  • XMLXML ((bevezetbevezetéés)s)

    34XML dokumentum (folyt.)XML dokumentum (folyt.)WellWell FormedFormed IX.IX.

    Szabályos megjegyzésekSzabályos CDATA blokkokNéhány további, itt nem említett alkotórész (pl, dokumentum típus definíció) szabályainak betartása.

  • XMLXML ((bevezetbevezetéés)s)

    35

    NNéévterekvterek

    XML dokumentumok hivatkozhatnak egymásraEz névütközésekhez vezethet (elem nevek, attribútum nevek).Megoldás: névterek használata.A nevek előtt (egy kettősponttal elválasztva) egy prefix állhat.Prefix nélküli név az alapértelmezett ("név nélküli") névtérhez tartozik.

  • XMLXML ((bevezetbevezetéés)s)

    36

    NNéévterek (folyt.)vterek (folyt.)

    A névteret abban a legkülső elemben kell definiálni, amely használni akarja.A névtér definíció a névtér nevéhez (ami prefixként azonosítja a névterek) egy egyedi azonosítót rendel, így a világ bármely XML dokumentuma használhatja névütközés nélkül.Az egyedi azonosító a szabvány szerint egy URIEgy elemben az alapértelmezett névtér is definiálható.

  • XMLXML ((bevezetbevezetéés)s)

    37

    NNéévterek (folyt.)vterek (folyt.)

    Névtér definiálása:

    elem további tartalma

    Alapértelmezés szerinti névtér definiálása esetén a "névtérnév" a fenti konstrukcióból elmarad.Egy elemhez több névtér is definiálható. (Ez nem mindig szerencsés!)

  • XMLXML ((bevezetbevezetéés)s)

    38

    Ami mAmi méég g éérezhetrezhetőően hien hiáányziknyzik

    Egy jól formált XML dokumentum még nem feltétlenül tartalmaz "értelmes" adatokat.Pl.:

    MiskolcKossuth LajosArany Jánoshehehe

  • XMLXML ((bevezetbevezetéés)s)

    39

    Ami mAmi méég g éérezhetrezhetőően hien hiáányzik (folyt.)nyzik (folyt.)

    Dokumentum szerkezetének, elemei lehetséges értékeinek definiálása

    DTDXML sémák

    Dokumentum értelmezéseAdatközpontú XML esetén ez általában programSegítség kell az XML dokumentum feldolgozásához

  • XMLXML ((bevezetbevezetéés)s)

    40

    LinkekLinkek

    XML 1.0 Specifikációhttp://www.w3c.org/TR/REC-xml

    Sun XML oldalahttp://java.sun.com/xml

    W3C XML oldalahttp://www.w3c.org/XML

    Apache XML projekt oldalaHttp://xml.apache.org

  • XMLXML ((bevezetbevezetéés)s)

    41

    Az XMLBevezetésSzükségességeAz XML kialakulásának történeteSGMLAz XML kialakulásának története (folyt.)HTML I.Az XML kialakulásának története (folyt.)HTML II.Az XML kialakulásának története (folyt.)HTML III.Az XML kialakulásának története (folyt.)HTML IV.Az XML kialakulásának története (folyt.)HTML V.Az XML kialakulásának története (folyt.)HTML VI.Az XML kialakulásának története (folyt.)Megjelenítés és leírásAz XML kialakulásának története (folyt.)XMLAz XML kialakulásának története (folyt.)XMLXML felépítése Dokumentum központú XMLXML felépítése (folyt.)Adatközpontú XMLEgyszerû XML példa I.Egyszerû XML példa II.XML dokumentumBevezetõ elem I.XML dokumentum (folyt.)Bevezetõ elem II.XML dokumentum (folyt.)Elemek I.XML dokumentum (folyt.)Elemek II.XML dokumentum (folyt.)AttribútumokXML dokumentum (folyt.)Az egyszerû példa értelmezéseXML dokumentum (folyt.)JelentésXML dokumentum (folyt.)Az egyszerû példa szerkezeteXML dokumentum (folyt.)Az egyszerû példa szerkezete (folyt.)XML dokumentum (folyt.)Well Formed I.XML dokumentum (folyt.)Well Formed II.XML dokumentum (folyt.)Well Formed III.XML dokumentum (folyt.)Well Formed IV.XML dokumentum (folyt.)Well Formed V.XML dokumentum (folyt.)Well Formed VI.XML dokumentum (folyt.)Well Formed VII.XML dokumentum (folyt.)Well Formed VIII.XML dokumentum (folyt.)Well Formed IX.NévterekNévterek (folyt.)Névterek (folyt.)Ami még érezhetõen hiányzikAmi még érezhetõen hiányzik (folyt.)Linkek