The World Wide Web Consortium (W3C) logo

XML 10 pontban

XML, XLINK, névtér, DTD, séma, CSS, XHTML ... Ha Ön még kezdő az XML technológiában, bizony nehéz megtudni, hogy hol is érdemes elkezdeni az ismerkedést. Az alábbi, 10 pontból álló összefoglaló megpróbál a kezdők segítségére lenni, hogy annyi alapvető tudás birtokába juthassanak, aminek segítségével már megláthatják a fán túl az erdőt.


1. Az XML célja az adatok strukturálása

b-10-structure.pngStrukturált adatok alatt olyan dolgokat értünk, mint egy táblázat, címjegyzék, konfigurációs paraméterek, üzleti tranzakciók vagy műszaki rajzok. Az XML szabályok gyűjteménye (ezeket felfoghatjuk szamárvezetőknek vagy konvencióknak), melyek segítségével olyan szöveges formátumokat állíthatunk elő, amelyek alkalmasak adatok strukturált leírására. Az XML nem egy programozási nyelv, és a használatához vagy megtanulásához nem szükséges programozónak lenni. Az XML a számítógép számára megkönnyíti az adatok generálását, olvasását és biztosítja, hogy az adatszerkezet egyértelmű legyen. Az XML elkerüli a programozási nyelvekben gyakran előforduló csapdákat: az XML bővíthető, platform-független és támogatja a nemzetköziesítést és a lokalizációt. Az XML teljes egészében az Unicode-on alapul.

2. Az XML egy kicsit olyan, mint a HTML

b-10-html.pngA HTML-hez hasonlóan az XML is tagokat (szavak '<' és '>' jelek között) és attribútumokat (név="érték" formátumban) használ. Azonban míg a HTML előre definiálja, hogy az egyes tagok és attribútumok mit jelentsenek, s hogy a tagok közötti szöveg a böngészőben miképp jelenjen meg, addig az XML a tagokat csak az egyes adatcsoportok elválasztására használja, az adatok értelmezését meghagyja az alkalmazások számára, amelyek az XML-t olvassák. Másképp megfogalmazva: ha egy "<p>" tagot látunk egy XML fájlban, akkor ez nem feltétlenül jelenti egy új paragrafus kezdetét. A kontextustól függően ez jelölhet pénznemet, pártot, paramétert, p... (és egyáltalán, ki mondta, hogy a jelölt adatnak "p" betűvel kell kezdődnie?)

3. Az XML szöveg, de nem olvasgatásra való

b-10-text.pngA táblázatokat, címjegyzékeket és egyéb strukturált adatot előállító programok az adatokat időről-időre lemezre kell, hogy mentsék valamilyen bináris vagy szöveges formátumban. A szöveges formátum előnye, hogy - amennyiben szükséges - akár ember által is elolvasható anélkül, hogy az azt előállító programot le kéne futtatni; a megtekintéséhez elegendő egy tetszőleges szövegszerkesztő használata. A szöveges formátum egy másik előnye, hogy a fejlesztők sokkal könnyebben tudják megtalálni benne az esetleges hibákat. A HTML-hez hasonlóan az XML fájlok sem azért készültek, hogy az embereknek el kelljen olvasni azokat, de ha szükséges, mégis megtehetik. A HTML-től eltérően az XML szabályai sokkal szigorúbbak. Egy lefelejtett lezáró tag vagy egy attribútum hiányzó idézőjelei az XML fájlt használhatatlanná teszik, míg a HTML-ben ilyen "könnyelműségek" megengedettek, sőt, esetenként kifejezetten engedélyezettek. A hivatalos XML-specifikáció nem engedi meg, hogy egy alkalmazás próbálkozás útján vagy más módon megpróbáljon kijavítani egy elrontott XML fájlt; ha a fájl rossz, az alkalmazásnak meg kell állnia a hiba észlelésekor, és jeleznie kell a hibát.

4. Az XML bőbeszédű, mert ilyennek tervezték

b-10-compress.pngMivel az XML egy szöveges formátum, és tagokat használ az adatok körülhatárolásához, ezért értelemszerűen egy XML fájl mindig nagyobb lesz, mint egy hasonló adatokat tartalmazó bináris fájl. Ez a tervezők tudatos döntésének eredménye. A szöveges formátum előnyei nyilvánvalóak (lásd a 3. pontot) és a hátrányai más szempontból kompenzálhatók. A tárolókapacitás ma már jóval olcsóbb, mint egykor, és a zip, gzip vagy hasonló tömörítő programok már elég gyorsan és nagymértékben képesek e fájlok tömörítésére. Továbbmenve, a kommunikációs protokollok, mint például a modern protokollok közül a HTTP/1.1, a Web alapprotokollja, képesek az adatokat röptében is tömöríteni, ily módon a bináris adatokkal összemérhető nagyságrendben tudnak a sávszélességgel takarékoskodni.

5. Az XML technológiák egy egész családja

b-10-family.pngAz XML 1.0 definiálja a tag és az attribútum fogalmát. Az XML 1.0-án túl létrejött az XML család" is, ami olyan modulok gyűjteménye, melyek fontos és gyakran előforduló XML-hez kapcsolódó problémákhoz nyújtanak segítséget. Az XLink egy olyan szabvány, mely leírja, hogy miként kell XML fájlokba linkeket elhelyezni. Az XPointer és XFragments szintaxissal az XML dokumentumon belül található részekre lehet hivatkozni. Az XPointer egy kicsit az URL-re hasonlít, azzal a különbséggel, hogy nem egy Weben található dokumentumra mutat, hanem egy XML fájlon belül található adatrészre. A CSS, a stílusleíró nyelv az XML-hez ugyanúgy használható, mint a HTML-hez. Az XSL egy továbbfejlesztett nyelv stílusnyelvek leírására. Ez az XSLT-n alapul, ami egy transzformációs nyelv, mely XML fájlok átrendezésére, tagok és attribútumok beszúrására, törlésére szolgál. A DOM funkcióhívások egy halmazát szabványosítja, melyek segítségével XML (és HTML) fájlokat manipulálhatunk különböző programozási nyelvekből. Az XML Séma 1 és 2 szabványok segítségével a fejlesztők leírhatják a saját XML alapú formátumaik struktúráját. Ezeken kívül még számos egyéb modul és eszköz létezik már, vagy áll fejlesztés alatt. Kísérjék figyelemmel a W3C technikai tudósítások oldalát!

6. Az XML új, de nem előzmények nélkül való

b-10-merge.pngAz XML fejlesztése 1996-ban kezdődött, és 1998 februárja óta már hivatalos W3C ajánlás, amiből esetleg arra is lehet következtetni, hogy ez egy meglehetősen kiforratlan technológia. Valójában azonban ez mégsem olyan új technológia. Az XML előtt volt az SGML, melyet a 80-as évek elején kezdtek el fejleszteni, 1986 óta ISO standard, és nagyméretű dokumentációs projektekben használták eddig. A HTML fejlesztése 1990-ben kezdődött. Az XML fejlesztői csupán annyit csináltak, hogy vették az SGML legjobb részeit, hozzávéve a HTML-lel kapcsolatos tapasztalataikat, és előállítottak valamit, ami semmivel sem kevésbé hatékony, mint az SGML, ám mégis jóval szabályosabb és egyszerűbben használható. Az evolúciót azonban néha igen nehéz megkülönböztetni a revolúciótól. Azt kell, hogy mondjuk, hogy míg az SGML leginkább csak technikai dokumentációk leírására volt alkalmas és más adat strukturálására alig, addig az XML pont ellenkezőleg.

7. A HTML-től XML-en keresztül vezet az út az XHTML-ig

b-10-xhtml.pngLétezik egy különösen fontos XML applikáció, mely egy dokumentum-formátum is egyben: a W3C XHTML szabványa, mely a HTML utóda. Az XHTML a HTML megannyi elemét örökölte, ám a szintaxisa kissé megváltozott, hogy megfeleljen az XML szabályainak. Egy olyan dokumentum, ami "XML alapú" örökli az XML szintaxisát és egyben szigorításokat is bevezet bizonyos helyeken (pl. az XHTML-ben használható a "<p>", de az "<r>" nem); az XHTML ezen kívül jelentést is társít a szintaxishoz (vagyis az XHTML kimondja, hogy a "<p>" a "paragrafus" jelölésére szolgál és nem mondjuk a pénznem vagy paraméter megadására).

8. Az XML moduláris

b-10-puzzle.pngAz XML lehetőséget nyújt arra, hogy új dokumentum-formátumokat meglévő formátumok újrahasznosításával hozzunk létre. Mivel két, egymástól függetlenül fejlesztett formátum esetlegesen használhatja ugyanazokat a tagokat vagy attribútumokat ugyanazokkal a nevekkel, ezekre ügyelni kell a formátumok kombinálásakor (a "<p>" paragrafust jelent ebben a formátumban, vagy pénznemet a másikban?) Az elnevezési problémák kiküszöbölése céljából az XML az ún. névtér mechanizmust hívja segítségül. Az XSL és az RDF jó példái olyan XML formátumoknak, amelyek névtereket használnak. Az XML Séma szabványt úgy tervezték, hogy a névtereket az XML struktúrák definíciójában is érvényesíteni lehessen, megkönnyítve ezzel, hogy két séma összekapcsolásával létrehozzunk egy harmadikat, amely leírja a kombinált dokumentum formátumát.

9. Az XML az RDF és a Szemantikus Web alapja

b-10-balloon.pngA W3C Resource Description Framework-je (RDF - Erőforrásleíró Keretrendszer) egy olyan szöveges formátum, amely az erőforrások és metaadatok leírását támogató alkalmazások számára készült. Ilyenek lehetnek a zenei műsorrendek, fotókollekciók vagy bibliográfiák. Például, az RDF segítségével lehetővé válik személyek azonosítása egy webes fotóalbumban oly módon, hogy az adatokat egy személyes telefonkönyvhöz kapcsolódóan adjuk meg. Így a levelező programunk automatikusan képes lesz levelet küldeni azoknak, akiknek megtalálható a képe a weben. Miként a HTML dokumentumokat, menürendszereket és formulákat tartalmazó applikációkat összekapcsolva elindította az eredeti Webet, úgy az RDF alkalmazásokat és ügynökprogramokat fog egy egységes Szemantikus Webbé formálni. Ahogy az embereknek is egyet kell érteniük a beszéd közben használt szavak jelentésében, hasonló módon a számítógépeknek is ugyanazt a nyelvet kell "beszélniük", és a kifejezéseiknek mindannyiuk számára ugyanazt kell jelentenie, hogy hatékonyan tudjanak egymással kommunikálni. Bizonyos területek kifejezéseinek (például vásárlás, vagy gyártástechnológia) formális leírását ontológiáknak nevezzük, s ezek szükségszerű részeit képezik a Szemantikus Webnek. Az RDF, az ontológiák és a jelentések számítógép számára értelmezhető ábrázolása áll a Szemantikus Web kutatási terület középpontjában.

10. Az XML licenszmentes, platform-független és sokak által támogatott

b-10-yes.pngXML-t választva egy projekt alaptechnológiájának Ön egy nagy és egyre növekvő számú eszközt és fejlesztői kapacitást kínáló közösség tagjává válhat, ahol az Ön számára fontos szaktudás vagy eszköz valószínűleg már ma is rendelkezésre áll. Ha Ön az XML-t választja, az kicsit olyan, mint amikor az SQL-t választja adatbázis technológiának: az adatbázist és a hozzá kapcsolódó programokat, melyek az adatbázison dolgoznak továbbra is Önnek is kell elkészítenie, de egy sor eszköz és hozzáértő fejlesztő lehet ebben a segítségére. És mivel az XML licenszmentes, az Ön applikációja bátran használhatja azt, és ezért senkinek semmit nem kell fizetnie. A nagy és növekvő támogatottság azt is jelenti, hogy Ön nincs egy kizárólagos forgalmazóhoz kötve. Az XML nem mindig a legjobb megoldás, de mindig érdemes elgondolkodni rajta!


W3C Communications Team, w3t-comm@w3.org
Revised 13 Nov. 2001 (last update: $Date: 2004/06/21 10:34:31 $)
Created 27 Mar 1999 by Bert Bos