XML
Főnév
XML (tsz. XMLs)
Az XML (Extensible Markup Language, magyarul: Kiterjeszthető Jelölőnyelv) egy szöveges adatleíró nyelv, amelyet arra terveztek, hogy könnyen olvasható és írható formában strukturált adatokat tároljon és továbbítson különböző rendszerek között.
Az XML szabványt az World Wide Web Consortium (W3C) fejlesztette ki és adta ki 1998-ban, hogy egy egységes, platform- és alkalmazásfüggetlen formátumot hozzon létre az adatok megosztására.
Az XML célja és szerepe
Az XML fő célja az volt, hogy egy könnyen érthető, rugalmas, ugyanakkor szabványos adatleíró nyelvet biztosítson, amely:
- Platformfüggetlen — bármilyen rendszer vagy program használhatja.
- Kiterjeszthető — a felhasználók saját jelölőket (tag-eket) hozhatnak létre, nem kötött előre definiált készletekhez.
- Emberi és gépi olvashatóság — mind a programok, mind a felhasználók könnyen értelmezhetik.
- Hierarchikus adatmodellezés — lehetővé teszi az adatok fa-struktúrában való ábrázolását.
- Széleskörű alkalmazás — adatok tárolása, konfigurációk, kommunikációs protokollok, webszolgáltatások stb.
Az XML szerkezete
Az XML dokumentum egy jól definiált szintaxisú szöveges fájl, amely elemekből (tag-ekből), attribútumokból és szöveges tartalomból áll.
Alapvető elemek
Elemek (Elements): Egy XML elem nyitó és záró tagből áll:
<cim>Budapest</cim>
Az elemek tartalmazhatnak szöveget, más elemeket vagy mindkettőt.
Attribútumok: Egy elemhez tartozó plusz információkat adhatunk meg attribútumok formájában:
<szemely nev="Kovács János" kor="35"/>
Hierarchia: Az elemek egymásba ágyazhatók, ezzel hierarchikus adatstruktúra hozható létre:
<orszag> <varos nev="Budapest"> <lakosok>1750000</lakosok> </varos> </orszag>
Jó lezárás: Minden nyitó taghoz záró tag tartozik, vagy önzáró tag formátum:
<tag/>
Példa egyszerű XML dokumentumra
<?xml version="1.0" encoding="UTF-8"?>
<konyvtar>
<konyv id="1">
<cim>A kód</cim>
<szerzo>Dan Brown</szerzo>
<kiadas>2003</kiadas>
</konyv>
<konyv id="2">
<cim>Az alkimista</cim>
<szerzo>Paulo Coelho</szerzo>
<kiadas>1988</kiadas>
</konyv>
</konyvtar>
Ez az XML egy könyvtárat ábrázol, amely két könyvet tartalmaz.
XML szabályok és érvényesség
Az XML dokumentumnak követnie kell bizonyos szabályokat (well-formedness):
- Egyetlen gyökérelem (root element) van az egész dokumentumban.
- Minden elem megfelelően van lezárva.
- A tag nevek érzékenyek a kis- és nagybetűkre.
- Az attribútumértékeket idézőjelek között kell megadni.
- Nem tartalmazhat érvénytelen karaktereket.
XML sémák és validáció
Az XML önmagában csak egy szerkezeti formátum, de a dokumentumok validálhatók is, hogy megfelelnek-e egy előre meghatározott szabálynak vagy sémának.
DTD (Document Type Definition)
A DTD egy egyszerű séma nyelv, amely megadja, hogy milyen elemek, attribútumok, sorrendek és ismétlődések megengedettek egy XML dokumentumban.
XML Schema (XSD)
Az XML Schema sokkal fejlettebb és erősebb séma nyelv, amely lehetővé teszi típusok, értékkorlátozások, összetettebb szabályok megadását.
XML feldolgozás
Az XML fájlokat számos programozási nyelv és eszköz képes feldolgozni:
- DOM (Document Object Model): Az egész XML dokumentumot betölti memóriába, és fa-struktúraként kezeli.
- SAX (Simple API for XML): Esemény alapú feldolgozás, ahol a feldolgozó végigolvassa a dokumentumot, és eseményeket generál az elemek, attribútumok megjelenésekor.
- StAX (Streaming API for XML): Irányított, esemény alapú, de előre-hátra léptethető feldolgozás.
XML kapcsolódó technológiák
- XSLT (Extensible Stylesheet Language Transformations): XML dokumentumok átalakítására szolgál, például HTML-be.
- XPath: Az XML dokumentumokon való navigáláshoz és elemek kiválasztásához használt nyelv.
- XQuery: Lekérdező nyelv XML adatokhoz, hasonló az SQL-hez adatbázisokban.
- Namespaces: Névterek segítenek azonosítani az elemeket, hogy elkerüljük az ütközéseket különböző XML dokumentumokban.
XML előnyei
- Platformfüggetlen adatcsere: Az XML széles körben támogatott, független a hardver- és szoftverkörnyezettől.
- Olvashatóság: Ember és gép számára is érthető, jól strukturált formátum.
- Kiterjeszthetőség: Bármilyen jelölő- és adatstruktúrát létre lehet hozni.
- Integráció: Széles körben használják webszolgáltatásokban (SOAP), konfigurációs fájlokban, dokumentumokban.
Hátrányok és kihívások
- Méret: Az XML dokumentumok általában nagyobbak, mint a bináris vagy más tömörített formátumok.
- Teljesítmény: Feldolgozása több erőforrást igényelhet, különösen nagy fájlok esetén.
- Bonyolultság: A sémák és kapcsolódó technológiák összetettek lehetnek, amelyek tanulást igényelnek.
XML és más adatformátumok összehasonlítása
Tulajdonság | XML | JSON | YAML |
---|---|---|---|
Emberi olvashatóság | Jó | Kiváló | Kiváló |
Szerkezetesség | Magas (szigorú) | Közepes | Rugalmas |
Kiterjeszthetőség | Nagyon magas | Korlátozott | Jó |
Méret és sebesség | Nagyobb, lassabb | Kisebb, gyorsabb | Kisebb, gyors |
Használat | Széleskörű, ipari | Webalkalmazások | Konfigurációs fájlok |
Összefoglalás
Az XML egy rendkívül fontos, szabványos adatleíró nyelv, amely lehetővé teszi strukturált adatok cseréjét és tárolását platformoktól függetlenül. Alkalmazása széleskörű: webszolgáltatások, adatbázisok, konfigurációs fájlok, dokumentumkezelés és sok más területen nélkülözhetetlen.
Az XML rugalmassága és kiterjeszthetősége miatt még ma is fontos szerepet tölt be az IT világban, bár a JSON és más modern formátumok egyre nagyobb teret hódítanak a könnyebb használhatóság és kisebb méret miatt.