Mivel a CSS stíluslapok nem képesek teljesen elválasztani a tartalmat a megjelenéstől, a W3C 1996-ban elkezdett egy új adatleíró nyelv létrehozásán dolgozni.

A tartalom és a megjelenés szétválasztását az új mobil eszközök megjelenése is szükségessé tette (lásd a lenti ábrát). Ezek az új eszközök a korlátolt képességeik (kisebb képernyő, lassabb adatátviteli sebesség, gyengébb erőforrások) miatt leegyszerűsített és gyakran teljesen módosított HTML oldalakat igényelnek. Ennek a kihívásnak a HTML nyelvvel csak nagy erőfeszítés árán lehet megfelelni. Minden egyes oldalnak külön létre kellett hozni a mobil eszközökre szánt változatát is. A probléma az, hogy a tartalom így feleslegesen lesz sokszorozva, mert a HTML fájl jellegéből adódóan a tartalom szorosan össze van olvadva a megjelenéssel. Ha pedig később módosítani szeretnénk a tartalmat, akkor azt egyszerre több helyen is meg kellene tenni.

A tartalom és a megjelenés szétválasztása

Sokszor előfordult, hogy egy weboldalba távoli weboldalról származó adatok beleszerkesztésére volt szükség. Például egy nemzetközi könyvárusító weboldalon a forint éppen aktuális dollárhoz viszonyított árfolyamának megjelenítésére. Ez az információ természetesen egy bank weboldaláról megszerezhető. Hogyan? A HTML 4.0 verziójában megjelent IFRAME elemmel tetszőleges weboldalat egy kereten belül lehet megjeleníteni az oldalunkon belül. Ennek a módszernek a használata további problémákat vet fel. Egy bank többnyire az összes pénznem árfolyamát egy táblázatba szerkesztve publikálja a számára megfelelő arculat (színek, stílus,..) szerint. Nekünk pedig csak a forint árfolyamára van szükségünk mindenféle dizájn nélkül. Az ideális tehát az lenne, ha a bank az igényeink szerint létrehozna csak nekünk egy külön oldalat, amit az oldalunkon egy IFRAME keretben meg tudnánk jeleníteni. Be kell látni, hogy ez az út járhatatlan.

Egy másik lehetőség is van. A legtöbb kliens oldali parancsnyelv (például a PHP) képes az Interneten keresztül távoli HTML oldalat megnyitni úgy, mintha az egy normális fájl lenne a lemezen. Ilyenkor az olvasásra megnyitott fájlban kell megtalálni a szükséges információt, a forint árfolyamát. Ez nem is olyan könnyű. Tudni kell ugyanis a kiolvasásra szánt adat pozícióját a fájlban és a kiolvasandó karakterek számát is. Karakterlánc keresési funkcióval ugyan lehetőség van egy adott szöveg pozíciójának megállapítására fájlban, de nem tudjuk, hogy milyen szöveget keressünk. Ha a forint árfolyama a forint=100 formában fordulna elő a HTML fájlban, akkor nem okozna gondot a megfelelő adat megtalálása.
A probléma a HTML nyelv jellegéből adódik. Egy HTML fájl csak a megjelenítéshez szükséges információkat tárolja, az adatok jellegére azonosítására semmilyen információt se tárol.
<tr><td>16.040</td></tr> <arfolyam penznem="HUF">16.040</arfolyam>

A fenti és még jó néhány webes probléma megoldására született meg az XML bővíthető jelölőnyelv 1998-ban. Az XML a World Wide Web Konzorcium ajánlása, amely kompatibilis egy sokkal régebbi, SGML (Standard Generalized Markup Language = szabványos általánosított jelölőnyelv) nevű ISO 8879/1986 szabvánnyal. Az SGML megfelelőség azt jelenti, hogy minden XML dokumentum egyben SGML dokumentum is, de fordítva már nem igaz, azaz van olyan SGML leírás, ami nem XML megfelelő.

Az XML az adat jellegét, nem pedig a kinézetét írja le. Az XML szabályok gyűjteménye, melyek segítségével olyan szöveges formátumokat állíthatunk elő, amelyek alkalmasak adatok strukturált leírására. A HTML nyelvvel ellentétben az XML nem tartalmaz előre definiált tagokat (jelölő elemeket). Az XML éppen ezért nem programozási nyelv. Az XML egy olyan szintakszist és szabályokat ad meg, amelyeket betartva különböző új jelölő nyelvek hozhatóak létre. Éppen ezért szokták meta-nyelvnek, nyelvleíró nyelvnek is nevezni. Egy XML dokumentum elemekbõl áll, amelyek neve szókincs, egymáshoz való kapcsolata és tartalma szabályokkal rögzíthetõ (nyelvtan).

szókincs, nyelvtan

A dokumentum típus definíció (Document Type Definition) által leírt elemeket és szabályokat szókincsnek nevezik. Az XML szabvány nem kényszeríti a nyelv tervezőit a DTD használatára, de használata ajánlatos, mert megkönnyíti a programozók munkáját. A programozóknak szükségük van olyan útmutatóra, amely leírja a dokumentum tartalmi szerkezetét. A DTD segítségével a dokumentum ellenőrizhetõ (érvényességi vizsgálat), a benne leírt szabályokat egy XML editor segítségével be lehet tartatni. A DTD meghatározza, egy elem milyen másik elemeket tartalmazhat, milyen paraméterei lehetnek ill. azoknak milyen értékei lehetnek. Ez esetben az XML elemző a DTD alapján képes megállapítani, megfelel-e a dokumentum a szerkezetleírónak.

A DTD volt a legelső eszköz az XML dokumentumok struktúrájának leírására. Súlyos hiányosságai miatt (nem XML formátumú, nem támogatja a névtereket, nincsenek benne adattípusok) inkább a nála fejlettebb XSD (XML Schema Definition) sémaleíró nyelvet használják.

Ha egy XML dokumentum megfelel az alapvető szintaktikai és egyéb szabályoknak, akkor az helyesen formált (well-formed). Ezek az alapvető követelmények az alábbiak:

  • minden tagot minden körülmények között be kell zárni, még akkor is, ha nincs értéke
  • a gyökér elem (root-emelent) nem hiányozhat
  • minden elemnek lehet nulla vagy több attribútuma
  • az elemek nem keresztezhetik egymást
  • minden XML dokumentum kötelezően egy feldolgozásvezérlő szekvenciával (processing instruction) kezdődik
  • megkülönbözteti a kis- és nagybetűket (case sensitive)

A helyes formázottság tényét nagyon könnyen ellenőrizhetjük a különféle XML feldolgozó programokkal, például az IE5+ böngészővel.

One Response to “XML (eXtensible Markup Language) bevezető I. rész”

  1. W3Net.eu » Blog Archive » XML (eXtensible Markup Language) bevezető II. rész Says:

    […] Az első rész folytatása következik. […]

Leave a Reply