Extensible Markup Language XML alapok Hernyák Zoltán http://aries.ektf.hu/~hz hz@aries.ektf.hu
SGML (Standard Generalized Markup Language) XML <people> <person>Jane Doe</person> <person>John Smith</person> </people> SGML (Standard Generalized Markup Language) 1970-s évek elejétől fejlődik folyamatosan ISO standard lett 1986-ban U.S. hadsereg és kormányzat, repülőgépipar (is) használja HTML (Hypertext Markup Language) ennek egyszerűsítése CERN-ben fejlesztve 1990-ben Elsősorban megjelenítést ír le, nem adattartalmat XML (Extensible Markup Language) Sun Microsystems, 1998 február W3C támogatást élvez
XML – sok mindenre jó Egyetlen adatleírás Számtalan kimenet Könnyű átalakítani a cél formátumára, igényeire
XML – jó, mert … Fa struktúrájú leírás Nagy mennyiségű adat esetén is könnyű a céhoz eljutni Legtöbb megjelenítési és feldolgozási probléma esetén egyszerű használni ezt a formát XML szabványos, sokan ismerik és kezelik Ingyenes, platformfüggetlen
XML – jó, mert … Text file, könnyű szerkeszteni Bár nem direkt (human) olvasásra szánják Egyszerű átalakítani HTML-re (az már jól olvasható) Többek között ez vezetett az XHTML kialakulásához De az XML is elolvasható szükség esetén
XML – használata a mindennapi életben Üzleti életben információ-csere (pl. bankok között) Könnyen készíthetők XML adatcsere-felületek Más formátumú XML könnyedén alakítható saját formátumra Ehhez saját „programozási nyelv”, XSLT kerül bemutatásra
XML – felépítés XML elemekből (tag) épül fel 1 – kezdő tag 2 – tartalom 3 – befejező tag
XML – felépítés Minden XML file-ban van (pontosan egy) gyökér elem (root) Ez a speciális elem tartalmazza az összes többi elemet
XML – felépítés Tetszőleges mélység építhető ki, így az adatok részeinek felépítése tetszőlegesen bontható
XML – készítés Jegyzettömb (mindig kéznél van) Nincs syntax-highlight, sem szintaktikai ellenőrzés sem gépelési segítség
XML – készítés Visual Studio (kiváló eszköz) Van syntax highlight Van gépelés segítés Van szintaktikai ellenőrzés (on-line)
XML – készítés Visual Studio (kiváló eszköz) Van syntax highlight Van gépelés segítés Van szintaktikai ellenőrzés (on-line)
XML – készítés XML NotePad 2007 (microsoft, ingyenes, letölthető) NotePad++ UltraEdit google – „xml editor” – 15 700 000 találat jellemző a syntax highlight támogatás a záró tagok gépelésének rásegítésre jól formáltsági ellenőrzés (well-formed) XML és DTD séma ellenőrzés (szintaktikai ellenőrzés)
XML – jól formáltság XML belső szerkezete szabályos egyetlen kezdő elem van csak a belső elemek nem lapolódnak át üres elemnek is van záró tag-je az xml kódlapnak megfelelő karakterek használata az xml kisbetű-nagybetű érzékeny a tag-ok neveiben Névadás: alkalmazható karakterek (ANGOL ABC!) A..Z , a..z, 0..9, aláhúzás, kötőjel, pont Tiltott karakterek: < & > ” ’
XML – jól formáltság Tiltott karakterek esete: < kisebb jel, helyettesítője < > kisebb jel, helyettesítője ≶ & et, helyettesítője & ” idézőjel " ’ aposztróf '
XML – jól formáltság Jól formáltság legegyszerűbb ellenőrzése: IE
XML – jól formáltság Ha nem jól formázott, az IE hibát fog jelezni:
üres elemnek is van lezárása XML – jól formáltság üres elemnek is van lezárása később, attribútumok kapcsán lesz ennek értelme <person name=”Jane Doe” pet=”fluffy” />
XML – jól formáltság Elemek nem kerülnek átlapolásra
XML – jól formáltság Tag nevekben (is) kisbetű-nagybetű érzékeny
XML – jól formáltság Elemek egymásba ágyazása nem tilos Bár nem jellemző
XML – jól formáltság Egy jól formázott XML dokumentum fa-szerkezetben könnyedén ábrázolható… Fa-bejáró algoritmusok egyszerűek, a fa szerkezet könnyen olvasható és módosítható
Egy elemhez gyerek-elemek tartozhatnak XML – attribútumok Egy elemhez gyerek-elemek tartozhatnak <person> <name>Jane Doe</name> <pet>fluffy</pet> </person> Egy elemhez attribútumok is rendelhetők <person name=”Jane Doe” pet=”fluffy” /> Az attributum nevek egyediek kell legyenek az elem-en belül A tartalom minden esetben string (macskakörmök használata) Attributum nem tartalmazhat további attributumot
Fejlesztési kényszer – a nevet bontsuk meg XML – attribútumok Fejlesztési kényszer – a nevet bontsuk meg vezetéknév + keresztnév formára: <person> <name> <first>Jane</first> <second>Doe</second> </name> <pet>fluffy</pet> </person> Attribútum esetén nehezebben látható a kapcsolat <person firstname=”Jane” secondname=”Doe” pet=”fluffy” /> A felső megoldás kompatibilis a korábbi megoldással, a <name> elem tartalma kiolvasható Jane Doe alakban is, az attributum megoldáshoz a túloldaldon jelentősen módosítani kell a feldolgozási algoritmust. Attribútum esetén a sorrendi kérdés nehezen dönthető el.
XML – deklaráció XML deklaráció (ezzel kezdődik az XML dokumentum) Az adatokon kívül (gyökér elem előtt) helyezkedik el version – xml verzió (1.0, 1.1) encoding – kódlap (utf-8 kíváló, windows-1250 a notepad esetén) standalone – yes: DTD bejegyzést nem tartalmaz - no: DTD file nevének hivatkozását tartalmazza DTD : Document Type Definition
XML-be komment könnyen illeszthető XML – komment XML-be komment könnyen illeszthető Szintaktikája egyezik a HTML komment szintaktikával Nem szerepelhet tag-ben, csak tag-en kívül <person> <!-- név adatok következnek --> <name>Jane Doe</name> <pet>fluffy</pet> </person>
XML – teljes példa