XSLT 2.0, XML Query a XPath 2.0 na dohled
Dlouhá, předlouhá pouť řady specifikací týkajících se XSLT 2.0, XML Query 1.0 a XPath 2.0 se konečně chýlí ke konci. 3. listopadu 2005 W3C prohlásilo osm hlavních dokumentů za kandidáty na doporučení (Candidate Recommendation). Tento stav víceméně signalizuje, že už nelze očekávat žádné faktické změny. Výrobci můžou bez obav implementovat a uživatelé se můžou naplno učit nové technologie. V kandidátském stavu specifikace vydrží nejméně do konce února, poté asi můžeme očekávat rychlé vydání nových navržených doporučení (Proposed Recommendation). PR už dělí od skutečného doporučení jen závěrečné formální schválení.
Zde je přehled dokumentů a jejich stručný popis:
- XSL Transformations (XSLT) Version 2.0
Transformace dokumentů XML (přesněji, instancí datového modelu) na jiné dokumenty XML. - XQuery 1.0: An XML Query Language
Dotazovací jazyk pro strukturovaná a částečně strukturovaná data, vhodný pro XML. - XML Syntax for XQuery 1.0 (XQueryX)
Syntaxe XML pro jazyk XQuery. Zamýšlena pro strojové zpracování, přenos a ukládání dotazů. - XML Path Language (XPath) 2.0
Syntaxe pro výrazy odkazující na části dokumentů XML. - XQuery 1.0 and XPath 2.0 Data Model (XDM)
Datový model pro XSLT 2.0, XQuery a XPath 2.0. Použitelný pro dokumenty XML i jiná data. - XQuery 1.0 and XPath 2.0 Functions and Operators
Veřejné funkce volané z výrazů XPath 2.0 a interní operátorové funkce, s jejichž pomocí jsou definovány datové operace v jazyku XPath 2.0. - XSLT 2.0 and XQuery 1.0 Serialization
Výsledkem vyhodnocení transformace XSLT či dotazu XQuery jsou instance datového modelu. Tento dokument popisuje, jak je lze serializovat jako XML, HTML nebo prostý text. - XQuery 1.0 and XPath 2.0 Formal Semantics
Přesný popis významu všech výrazů XPath/XQuery v pojmech datového modelu. Určeno převážně pro implementátory.
Cesta ke druhé generaci klíčových technologií pro práci s daty XML začala před čtyřmi roky. V srpnu 2001 W3C ještě zveřejnilo první pracovní verzi XSLT 1.1, ale už za nekolik měsíců bylo vše jinak. XSLT 1.1 skončilo pod stolem; nahradil je rozsáhlý plán propojit budoucí XSLT, XPath a XQuery s právě dokončenou specifikacíXML Schema. Všechny nové specifikace se měly opírat o stejné datové typy a datový model, měly používat společnou knihovnu funkcí a stejné operátory a serializovat podle stejných pravidel. Už v prosinci 2001 W3C zveřejnilo první pracovních verze nové rodiny specifikací.
Je logické, že se W3C snaží sjednocovat, propojovat a modularizovat své specifikace. Přináší to významné výhody, především logickou slučitelnost jednotlivých technologií a možnost využití hotových modulů při implementaci. Uživatel se toho, díky opakujícím se vlastnostem, dokáže více a rychleji naučit. Nevýhodou je nevyhnutelný nárůst složitosti celého systému. Specifikace jsou formálně velmi přesné, ale o to hůře čitelné. Definitivně přestaly být určeny běžným uživatelům, na jejich místo musí nastoupit tutorialy.
Kontroverzním bodem druhé generace XPath/XQuery/XSLT je pevné propojení nových standardů s datovým systémem jazyka XML Schema. XML Schema je příkladem ne tak docela povedeného standardu. Snaha zahrnout co nejvíce funkcí spolu s absencí citu, zkušenosti a snad i šťastné intuice vedly k vytvoření překomplikovaného systému. Část o datových typech naštěstí patří k těm lepším. Umožnit celému propletenci technologií pracovat s libovolným typovým systémem by znamenalo další úroveň abstrakce a další komplikace pro všechny zúčastněné.
Z nových technologií se zatím má nejvíce k světu XQuery. Standardní a výkonný dotazovací jazyk potřebují všichni výrobci nativních XML databází, kteří většinou (eXist, Berkeley DB XML, Sedna, OrientX, Tamino, Xyleme a další) neváhali implementovat už pracovní verze. Podpora jazyka XQuery nechybí ani v hlavních editorech (XML Spy, Stylus Studio, oXygen). XQuery 1.0 se už nyní zařazuje mezi základní nástroje pro práci s XML, bez jehož znalosti se do budoucna obejde málokterý vývojář přicházející do styku s XML. Těm, kdo XQuery zatím neznají a rádi by je příjemným způsobem poznali, můžu doporučit nový tutorial, který pro Stylus Studio napsal Michael Kay.
W3C standardizuje binární XML
Na půdě W3C vznikla nová pracovní skupina nazvaná Efficient XML Interchange (EXI). Navazuje na práci skupiny XML Binary Characterization (XBC), a to jak svým zaměřením, tak personálně. Úkolem EXI je na základě požadavků a podmínek stanovených XBC definovat alternativní binární formát pro serializaci infosetu XML. Předsedou pracovní skupiny EXI je bývalý předseda XBC Robin Berjon (představil sebe i XBC na XML Prague 2005) společně s Oliverem Goldmanem z Adobe. Činnost EXI je, stejně jako tomu bylo s XBC, časově omezena do prosince 2007.
Řekl bych, že postupu W3C v této oblasti není příliš co vytknout. Konsorcium si je dobře vědomo nebezpečí plynoucích ze zavedení binárního formátu, postupuje obezřetně a nezaujatě. Samotný princip přesně definovaných a termínovaných úkolů je sympatický; závěry učiněné XBC mi znějí důvěryhodně. Bude-li EXI v tomto stylu práce pokračovat, mohl by standardní binární formát pro XML pomoci těm, kdo to potřebují, a neuškodit nám ostatním, kteří pracujeme s XML jako textovým formátem.