Pohleďte na ta tři písmena: X, M, L. Uvažte, co všechno se lidem vybaví, když je vidí pohromadě. Nepochybně široká škála možností. Zamyslete se, prosím, co z té představy je skutečně neodlučitelně spjato s jazykem XML.
Většinu lidí, kteří se motají kolem X, můžete rozdělit podle stupně znalostí do dvou skupin.
Programátor vidí datovou strukturu. Většinou krásný strom zvaný DOM, z něhož vyzobává data pomocí XPathu. Nezajímá ho příliš, jak je dokument reprezentován ve své textové podobě. To je věcí standardního XML procesoru, do něj vidět nepotřebuje.
Také ho málokdy zajímá definice typu dokumentu a validita. Pokud jsou ve zpracovávaném dokumentu nějaké znakové entity, jsou spíše na obtíž, nevyužívá jich. Rovněž o jmenné prostory projeví zájem jen z donucení. Plně se spokojí s primitivní stromovou strukturou elementů, atributů a textových uzlů. Říká sice, že zbožňuje XML, jeho srdce však patří až té struktuře, kterou vyrábí XML procesor.
Co myslíte, že by se změnilo, kdybyste mu místo XML procesoru podstrčili SGML parser tvořící naprosto stejný DOM? Dokument v SGML přeci může vyjadřovat totožnou strukturu, takže vyprodukovat totožný DOM není problém. Vsaďte špičák, že by rozdíl nepostřehl.
On totiž samotný XML formát vůbec nepotřebuje. Stačí mu ta omáčka kolem, co se spolu s XML proslavila.
Lidé, kteří vidí hlouběji do světa XML, vidí strukturované informace. Znají jmenné prostory, píší si validační schémata v RELAXu NG, transformují psí kusy v celé psy a naopak a spokojeně vrní, jak ta aplikační standardizovaná vrstva dobře funguje.
Co myslíte, že by se změnilo, kdyby místo formátu XML použili úplně nový formát? Někdo by ho musel jasně zadefinovat. Vtisknout význam jeho prvkům a specifikovat základní rysy rozebírání, aby mu mohl kdokoliv napsat parser. Vznikl by další jazyk, na XML formátu v podstatě nezávislý.
Jelikož by však tento nový formát těžil ze všech těch oblíbených technologií, které jsou z definice spjaté se světem XML (jmenné prostory, transformace, XPath), byl by autorem vhozen do onoho velkého pytle XML aplikací. Řeklo by se, že to je „XML aplikace s alternativní syntaxí“. Jak prosté.
Taková aplikace by vůbec nemusela trpět nešvary XML formátu, kterým se věnují jiné zdejší články. Mohla by mít ošetřené chybové stavy nebo stručnější zápis, ale stále vyjadřovat stejnou strukturu informací. Či z pohledu programátora: stejnou datovou strukturu.
Nyní se vraťte ve svých myšlenkách k World Wide Webu. Vidíte, že drtivá většina stránek používá HTML, že? Zároveň ale nemůžete přehlédnout ty kladné rysy světa XML. Co s tím? Nešlo by to zkombinovat?
Mám nápad! Vyrobíme XHTML, což bude HTML s XML syntaxí.
— Někdo v konsorciu, někdy dávno, volně domyšleno
Cesta, kterou zvolilo W3C, je velmi konfliktní. Zbytečně mění formát z jednoho hotového značkovacího metajazyka na druhý.
Mám nápad! Vyrobíme XHTML, což bude XML s HTML syntaxí.
— Nikdo, bohužel
Na současné HTML 4 můžete pohlížet jako na XML aplikaci s alternativní syntaxí. Nepotřebujete na ni speciální specifikaci, speciální MIME typ a speciální webové prohlížeče. Programátorům postačí speciální parser v programech, které těží z DOMu. Říkáte si teď: „Brzdi, Chamurappi, podle tebe bychom museli šít parser na míru téhle jedné aplikaci — to je přeci nesmysl, to se nedělá“?
Nesmysl to není, uvědomíte-li si, že tahle jedna aplikace je nejrozšířenějším značkovacím jazykem v této sluneční soustavě. A že se to nedělá?
Pohleďte na následující kód:
Nebo si prohlédněte tento:
Vězte, že o obou předvedených kouscích se hovoří jako o aplikacích XML. S alternativní syntaxí, samozřejmě. První kód je psán kompaktním zápisem RELAXu NG, druhý je Notation3 zápis RDF.
Při tom nejde o prehistorické zavrhované formáty: RELAX NG je ISO standardem a na specifikaci Notation3 syntaxe se poslední dobou aktivně podílí sám šéf konsorcia.
... bylo XHTML syntakticky plně kompatibilní s HTML, webdesignérské řemeslo by bylo nyní chudší o jeden nesmrtelný konflikt a o desetitisíce smrtelných fanatiků.