az xml bevezetésusers.iit.uni-miskolc.hu/ficsor/osztottseg/xmlbev.pdf · 2007. 10. 2. ·...
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