Hlavní navigace

Proč XML není jen bublina

Petr Cimprich

Před několika týdny jsem na root.cz komentoval provokativní článek Tima Braye o příliš složité práci s XML. Příběh má své pokračování, které znovu stojí za zmínku. Mimo jiné nabízí rekapitulaci důvodů, proč XML není jen nafouknutá bublina, jež může každou chvíli splasknout.

Odkazy na článek, který vše způsobil, a shrnutí ohlasů v diskusní skupině XML-DEV obsahuje původní komentář „Příliš obtížné XML?“. Souhrn dalších názorů z XML-DEV nabízí opět Kendall Grant Clark na XML.com. Mezi těmito názory převažuje spíše nesouhlas. Většina reagujících programátorů trvá na tom, že XML jejich život nekomplikuje, ale naopak usnadňuje. Objevily se ale také reakce typu „jen se podívejte, spoluautor XML sám uznává, že se XML nepovedlo“. Proti podobným názorům se Tim Bray ohrazuje v novém článku Why XML Doesn't Suck. Tento článek je pěkným přehledem hlavních předností XML. Pojďme se na ně podívat.

Internacionalizace: XML důsledně a od začátku používá Unicode. Každý dokument XML obsahuje jednoznačnou informaci o svém kódování a použité znakové sadě. XML tak pomohlo ukončit éru nepřehledné džungle kódových stránek, která panovala až do konce devadesátých let, a zároveň přispělo k rozšíření Unicodu jako primární znakové sady.

Flexibilita: V XML je možné reprezentovat prakticky cokoli. Někdy to může být vhodnější, jindy zase méně, ale v XML zapíšeme divadelní hru stejně jako vektorovou grafiku nebo volání vzdálených procedur. Potřebujete bezpečně uložit nebo přenést libovolné informace? XML vám to umožní.

Interoperabilita: Magické slovo skloňované ve všech pádech už po desetiletí. Většina systémů se snaží o interoperabilitu na úrovni API, což je v praxi často problematické. Vždy se najdou implentace, které se snaží být aspoň o trochu „standardnější“ než ty druhé. Spolehlivé obvykle bývají jen ty systémy, které jsou založeny na jediné implementaci (nebo přinejmenším na společné knihovně základních tříd). XML je skromnější. Zaručuje pouze interoperabilitu na úrovni syntaxe (resp. gramatiky), ale zato se na ni můžete spolehnout. Vždy lze jednoznačně určit, zda je ten který dokument správně zformován (well-formed). Vždy lze rozhodnout, zda za chybu odpovídá autor dokumentu, nebo ten, kdo se jej snaží přečíst. Pokud jde o gramatiku, totéž platí o validaci proti danému schématu.

Stabilita: Datové formáty zastarávají stejně jako média, na kterých jsou data ukložena. XML tu s námi bude dlouho, určitě déle než různé binární formáty momentálně oblíbených aplikací. Chcete-li, aby vaše informace byly použitelné ještě za deset nebo více let, je jejich uložení v XML patrně tím nejlepším, co můžete udělat.

Ve stejném článku Bray také reaguje na oblíbené argumenty odpůrců XML. Mnohé z nich se opakovaně objevují také v diskusích na root.cz, proto snad nebude nezajímavé některé z reakcí uvést.

XML je zbytečně upovídané. Možná. Ale vzhledem k nárůstu přenášených multimediálních dat nezabírají většinou textové značky významnou část šířky přenosového pásma. Je-li to třeba, dá se XML účinně zkomprimovat. Pokud hraje roli každý bajt, nepoužívejte XML.

Zbytečně existují dva různé způsoby, jak ukládat data – elementy a atributy. Použití elementů a atributů je věcí citu. Atributy mají blíž k metadatům popisujícím elementy, ale nejedná se o striktní pravidlo. Pokud citlivě použijete elementy i atributy, můžete v XML vytvořit lepší aplikaci. Co se vám víc líbí?

<a>

  <href>/</href>
  <name>root.cz</name>
</a>

nebo

<a href="/">root.cz</a>

Standardy vystavěné nad XML jsou příliš složité a je jich příliš mnoho. To je pravda. Nikdo vás ale nenutí je používat. A XML je v tom nevinně; nemůže nést odpovědnost za všechny své aplikace. Ze všech aplikací, jazyků, API nebo schémat si vyberte jen to, co se vám hodí. Ne každé doporučení W3C musí být nutně skvělé a nikdo ani nemůže znát každou novou verzi každé specifikace.

To by snad jako ukázka mohlo stačit. Většina stížností na XML plyne z nepochopení jeho skutečného významu. Tím není XPath, XSLT, XQuery nebo XAnything, ale internacionalizace, flexibilita apod., viz výše. Nikdo pochopitelně netvrdí, že v pozici, v jaké je dnes XML, nemohl být nějaký jiný formát. XML mohlo při zachování všech svých předností vypadat úplně jinak. Mohlo, ale nevypadá. Dnešní syntaxe má velkou výhodu, že opticky připomíná HTML, které zná snad každý, kdo jen letmo zavadil o informační technologie. Tím se hodně snižuje počáteční bariéra při zvládání nového formátu. XML dávno překonalo kritickou mez rozšíření. Dnes každý musí podporovat XML mimo jiné i proto, že to dělají všichni ostatní. Je směšné bezhlavě nasazovat XML i tam, kde se to vůbec nehodí, ale stejně směšné je tvrdit, že dnešní jediný univerzální a globálně přijímaný formát nepřináší užitek.

Našli jste v článku chybu?