Hlavní navigace

Akta X: Relax NG se prosazuje

Petr Cimprich

Relax NG má stále více příznivců, a to i uvnitř konsorcia W3C, které vytvořilo a propaguje konkurenční standard XML Schema. Předznamenává tento vývoj začátek nadvlády Relaxu NG a postupný útlum jazyka W3C XML Schema? Mohou oba jazyky dlouhodobě existovat vedle sebe?

Relax NG, původně alternativní jazyk určený ke specifikaci syntaxe aplikací XML, získává stále více půdy pod nohama. Konkurenční jazyk XML Schema od W3C už od svého vzniku čelí ostré kritice, zatímco Relax NG je v kolektivu oblíbený a prosazuje se na všech frontách. Dnes má status specifikace OASIS a (veřejně dostupného) mezinárodního standardu ISO/IEC.

Elliotte Rusty Harold ve svém blogu před pár dny optimisticky vyhlásil souboj Relaxu NG a W3C XML Schema za ukončený. Dokládá to zejména příklady týmů, mezi nimi i pracovních skupin W3C, tedy organizace stojící za jazykem XML Schema, používajících pro svou práci Relax NG. Haroldův článek vyvolal mnohé reakce, převážně souhlasné, jako napříkladkomentář Tima Braye. Bouřlivá a rozsáhlá diskuze se strhla v mailing listu XML-DEV.

Mezi Haroldovými příklady uživatelů Relaxu NG jsou dva technické výbory OASIS (DocBook a OpenDocument), kde není divu, že používají svůj vlastní standard, ale také dvě pracovní skupiny W3C. HTML pro XHTML 2.0, a SVG pro SVG 1.2. K nim můžu doplnit ještě pracovní skupinyRDF Core (pro RDF/XML Syntax), RDF Data Access (SPARQL) a Web Services Description (WSDL). Poslední uvedený příklad je obzvlášť zajímavý. Jazyk Web Services Description Language popisuje služby spočívající ve výměně zpráv XML pomocí protokolu SOAP. Pro vyjádření syntaxe těchto zpráv jazyk WSDL v sobě obsahuje jazyk pro popis schématu, se kterým je velmi těsně svázán. První a standardní volbou sice zůstává W3C XML Schema, ale hned od začátku WSDL počítá také s použitím dalších jazyků, jmenovitě Relaxu NG.

A o čem to vše svědčí? Je to opravdu důkaz definitivního vítězství Relaxu NG nad XML Schema? To sotva. Relax NG se zbavuje nálepky alternativní technologie a zaslouženě se rozšiřuje, ale W3C XML Schema rozhodně není u konce s dechem. Naopak, jeho pozice je stále dost pevná. Jazyk XML Schema je součástí nastupujících standardů XPath/XSLT 2.0 a XQuery 1.0, stále je základem WSDL. Datové typy XML Schema zatím nemají reálnou konkurenci. Navíc se chystá aktualizovaná verze W3C XML Schema 1.1 (struktury, datové typy) s řadou vylepšení a oprav.

Podle mého názoru je používání Relaxu NG pracovními skupinami W3C pouze dokladem liberální atmosféry uvnitř W3C. Je zřejmé, že konsorcium nikoho nenutí, aby používal pouze a jedině W3C XML Schema. Chápat soupeření obou standardů jako bitvu, ve které musí jeden vyhrát a druhý prohrát, neodpovídá reálné situaci. Budou zde dva nástroje a každý si bude moci vybrat, který z nich lépe poslouží jeho záměrům.

Od chvíle, kdy James Clark napsal Trang, už také není nutné rozhodnout se pro jeden z jazyků a druhý odmítnout. Pokud se vám podaří vyhnout se okrajovým funkcím, které jeden z jazyků neumí, není problém psát schémata v jednom jazyku a převádět do druhého. Pro toho, kdo píše schémata v textovém editoru, je pak nejlepší volbou udržovat schémata v kompaktní syntaxi Relax NG a pomocí Trangu pak převádět do Relax NG XML a XML Schema, a třeba i DTD. Až budeXML s někým vyměňovat, může si zvolit, podle jakého schématu bude chtít validovat. O popularitě Trangu svědčí, že v angličtině už se v XML komunitě objevuje nové sloveso – „to trang“.

Škoda, že tolik lidí v IT vnímá soupeření různých přístupů jako nesmiřitelný ideologický boj. Relax NG proti XML Schema, Linux proti Windows, Firefox proti IE, Python proti Perlu (Ruby); podobných „protikladů“ by se našlo. Buďme rádi, že máme možnost volby, a přejme ji i ostatním.

Našli jste v článku chybu?
18. 12. 2006 20:30
Ještě by nebylo špatné přidat odkaz na Vaši přednášku na toto téma ke stažení ;-) http://avc.sh.cvut.cz/archiv/index.php?id=1041&rid=200&offset=192&select=0
18. 12. 2006 15:11
Jirka Kosek (neregistrovaný)

Jen upřesním, že hlavní důvod proč DocBook V5.0 používá RELAX NG není v tom, že by oba standardy vytvářela jedna standardizační organizace. Pravý důvod je v tom, že ze současných běžně používaných schémových jazyků jedině RELAX NG (v kombinaci se Schematronem) dokáže rozumně popsat omezení, kterým musí docbookové dokumenty vyhovět. Standardy OASIS klidně mohou používat W3C XML Schéma, ale kdo by tenhle jazyk používal, že ;-)

Pokud někdo neví, jak vypadá RELAX NG, může se podívat na můj tutori…