4.5. Az XML nyelv

iDevice ikon

Az XML (Extensible Markup Language, Kiterjeszthető Leíró Nyelv) a W3C által ajánlott általános célú leíró nyelv, speciális célú leíró nyelvek létrehozására. Az elsődleges célja strukturált szöveg és információ megosztása az Interneten keresztül.

Az XML azon tulajdonságai, amelyek alkalmassá teszik adattovábbításra:

  • mind ember, mind gép számára olvasható formátum;
  • támogatja a Unicode-ot, ami lehetővé teszi bármely információ bármely emberi nyelven történő közlését;
  • képes a legtöbb általános számítástudományi adatstruktúra ábrázolására (rekord, lista, fa...);
  • öndokumentáló formátum, amely struktúra- és mezőneveket ír le speciális értékekkel együtt;
  • szigorú szintaktikus és elemzési követelményeket támaszt, ami biztosítja, hogy a szükséges elemzési algoritmus egyszerű, hatékony és ellentmondásmentes maradjon.

Az XML-t gyakran használják dokumentumtárolási és -feldolgozási formátumként, mind online, mind offline módon, és több előnnyel is jár:

  • internetes szabványokon alapuló erőteljes, logikailag ellenőrizhető formátum;
  • hierarchikus struktúrája megfelel a legtöbb (de nem mindegyik) dokumentumtípusnak;
  • egyszerű szöveg formátumban valósul meg, licencektől és korlátozásoktól mentesen;
  • platformfüggetlen, így viszonylag immunis a technológiai változásokkal szemben;
  • az XML-t és elődjét, az SGML-t már több mint tíz éve használják, így nagy tapasztalat és eszközkészlet áll rendelkezésre.

Bizonyos alkalmazások szempontjából a következő hátrányokkal rendelkezik:

  • A szintaxisa elég bőbeszédű és részben redundáns. Ez nehezítheti az emberi olvashatóságot és az alkalmazások hatékonyságát, valamint nagyobb tárolási költséggel jár. Nehézzé teszi az XML alkalmazását korlátozott sávszélesség esetén, bár bizonyos esetekben a tömörítés csökkentheti a problémát. Ez részben igaz a telefonokon és PDA-kon futó multimédiás alkalmazásokra, melyek XML-t szeretnének használni képek és videók leírására.
  • A szintaxis számos homályos, felesleges tulajdonsággal bír, ami az SGML hagyatéka.
  • Az alapvető elemzési követelmények nem támogatják az adattípusok túl széles körét, így néha a kívánt adat kinyerése a dokumentumból plusz munkával jár az elemző részéről. Például nincs lehetőség XML-ben a "3,14159" lebegőpontos számként való megjelölésére hét karakterből álló sztring helyett.

Például egy egyszerű recept a következőképpen fejezhető ki XML-ben:

<?xml version="1.0" encoding="UTF-8"?>

<Recept név="kenyér" elk_idő="5 perc" sütés_idő="3 óra">

  <cím>Egyszerű kenyér</cím>

  <összetevő mennyiség="3" egység="csésze">Liszt</összetevő>

  <összetevő mennyiség="10" egység="dekagramm">Élesztő</összetevő>

  <összetevő mennyiség="1.5" egység="csésze">Meleg víz</összetevő>

  <összetevő mennyiség="1" egység="teáskanál">Só</összetevő>

  <Utasítások>

    <lépés>Keverj össze minden összetevőt, aztán jól gyúrd össze!</lépés>

    <lépés>Fedd le ruhával és hagyd pihenni egy óráig egy meleg szobában!</lépés>

    <lépés>Gyúrd össze újra, helyezd bele egy bádog edénybe, aztán süsd meg a sütőben!</lépés>

  </Utasítások>

</Recept>