XML

XML znamená eXtensible Markup Language, v preklade rozšíriteľný značkovací jazyk, ktorý bol vyvinutý a štandardizovaný konzorciom W3C (World Wide Web Consortium) ako pokračovanie jazyka SGML a zovšeobecnenie jazyka HTML. Umožňuje jednoduché vytváranie konkrétnych značkovacích jazykov na rôzne účely a široké spektrum rôznych typov údajov.
Jazyk je určený predovšetkým na výmenu údajov medzi aplikáciami a na zverejňovanie dokumentov. Jazyk umožňuje opísať štruktúru dokumentu z hľadiska vecného obsahu jednotlivých častí a nezaoberá sa sám osebe vzhľadom dokumentu alebo jeho časti. Vzhľad dokumentu sa potom definuje pripojeným štýlom. Ďalšou možnosťou je pomocou rôznych štýlov vykonať transformáciu do iného typu dokumentu alebo do inej štruktúry XML.
Jazyk XML nemá žiadne preddefinované značky (tagy, názvy jednotlivých elementov) a tiež jeho syntax je podstatne prísnejšia (a jednoduchšia) ako syntax HTML.

Použitie

Sila XML je najmä v jeho hierarchickej štruktúre a pomerne jednoduchom spôsobe zápisu. Umožňuje opisovať – označovať ľubovoľné dáta a prenášať ich medzi rôznymi aplikáciami a platformami. Hlavnou ideou XML je oddelenie obsahu a vzhľadu dát. Spojovacím mostom je XSL, ktorý umožňuje vytvárať množstvo výstupných formátov.
XML je formát súboru obsahujúci dáta. Zvláštnym ho robí to, že je široko prijímaný ako štandard so schopnosťou existencie na akejkoľvek platforme a používaný veľkým a stále rastúcim počtom aplikácií a programovacích jazykov.
Špecifikácia XML je opísaná odporučením konzorcia World Wide Web Consortium. Jazyk XML nám dovoľuje vytvárať štruktúrované dokumenty veľmi flexibilným spôsobom. Dá sa použiť k vytváraniu dokumentov, ktoré sa zdanlivo podobajú dokumentom HTML; jazyk XML sa však od HTML líši a používa sa k zásadne iným účelom. Táto podobnosť pochádza od rovnakých rodičov – obidva jazyky sú odvodené od štandardu definície jazyka SGML. Ten sám osebe nie je žiadny jazyk, ale iba spôsob definovania jazykov vyvinutých podľa jeho obecných princípov. Existuje tu však dôležitý rozdiel v tom, akým spôsobom sú jazyky XML a HTML odvodené od SGML. XML je podmnožina SGML – ľahšia verzia, ktorá bola oproti SGML zjednodušená, aby umožňovala použitie na sieti WWW, ale aj ako formát výmeny dát. Toto zjednodušenie robí zápis dokumentov vychádzajúcich z XML jednoduchším. Oproti tomu jazyk HTML je aplikáciou SGML – je to teda konkrétny jazyk, ktorý dodržuje štandard SGML.
XML a HTML v skutočnosti slúžia veľmi odlišným účelom. Dokument HTML obsahuje značky indikujúce, ako má byť dokument naformátovaný, neobsahuje však žiadne informácie o vlastnom obsahu. Inými slovami HTML obsahuje iba informácie o zobrazení dát a neobsahuje údaje o tom, o aké dáta ide. XML sa pokúša oddeliť obsah a jeho reprezentáciu. Dokumenty XML obsahujú informácie v štruktúrovanej forme, ktorá sa zdanlivo podobá HTML. Dôležitým rozdielom je fakt, že môžeme definovať svoje vlastné značky, ktoré určujú štruktúru dát.
Dokumenty XML sa dajú previesť do HTML tým, že sa k dokumentu priradí štýl v jazyku XSL (Extensible Stylesheet Language – rozšíriteľný jazyk štýlov). Štýl bude obsahovať informácie o tom, ako túto stránku zobraziť. XSL sa však dá použiť aj na prevod do iného formátu XML.

Podpora XML v jazyku PHP

PHP podporuje sadu funkcií, ktoré sa používajú pre programovanie aplikácií pracujúcich s XML. Funkcie sa dajú používať na čítanie XML dokumentov. XML parser v PHP spracováva tok dát. Ešte pred začatím načítavania dokumentu sa parseru zaregistrujú obslužné funkcie. XML dokument sa parseru odovzdáva po častiach a parser priebežne volá príslušné zaregistrované funkcie ako rozpoznáva jednotlivé uzly. Pokiaľ je dokument správne štruktúrovaný ale neplatný, nezobrazí parser žiadne chyby ani varovania.
Doplnok XML v PHP podporuje znakovú sadu Unicode. Nastavujú sa dve kódovania znakov: kódovanie vstupu a kódovanie výstupu. Kódovanie vstupu sa používa pri čítaní dokumentov. Predvoleným kódovaním vstupu používaným v PHP je ISO-8859-1. Kódovanie výstupu sa používa, keď PHP odovzdáva dáta zaregistrovaným funkciám. Kódovanie výstupu ovplyvňuje textové dáta aj názvy značiek a ciele inštrukcií pre spracovanie.
Hneď ako parser narazí na znaky mimo rozsah, ktorý dokáže kódovanie vstupu reprezentovať, vráti chybu. Pokiaľ PHP nájde v rozparsovanom dokumente XML znaky, ktoré sa nedajú reprezentovať vo vybranom výstupnom kódovaní, nahradí ich otáznikmi. Podpora XML v PHP je implementovaná pomocou knižnice expad. Expad je knižnica napísaná v jazyku C, slúžiaca pre spracovanie dokumentov XML.