Akta X 0407

Petr Cimprich 5. 8. 2004

ECMAScript přichází s rozsáhlou nativní podporou XML. IBM a Novell společně řeší komplexní instalace. W3C aktualizovala pracovní verze nové generace specifikací XSLT/XPath/XQuery.

ECMAScript pro XML

ECMAScript patří, přinejmenším co do počtu programátorů, k nejrozšířenějším programovacím jazykům na světě. Nejznámější a historicky první imlementací specifikace ECMAScript je JavaScript od firmy Netscape, nyní udržovaný organizací Mozilla Foundation. JavaScript je ve skutečnosti starší než specifikace ECMAScriptu a také je trochu rozsáhlejší. Kromě původní céčkové implementace zděděné od Netscapu, jež je vedena pod kódovým jménem SpiderMonkey, má Mozilla ještě další, javovou implementaci JavaScriptu zvanou Rhino. Jinou významnou implementací ECMAScriptu je JScript od Microsoftu. Specifikaci jazyka ECMAScript zaštiťuje ECMA International, neziskové průmyslové sdružení zaměřené na vývoj standardů pro informační a komunikační technologie a spotřební elektroniku.

Sdružení ECMA 20. července zveřejnilo nový mezinárodní standard ECMAScript for XML (E4X). Jedná se o sadu rozšíření přidávající do ECMAScriptu nativní podporu XML. Konkrétněji, přibývají nové datové typy, standardní objekty a několik operátorů, jež mají usnadnit práci s XML. Na specifikaci E4X pracovali zástupci firem BEA, IBM, Microsoft, Macromedia, AOL a také Mozilly. E4X se má stát povinnou součástí čtvrté, tedy nejbližší příští edice ECMAScriptu. Zatím existuje několik úplných nezávislých implemetací; jednu z nich BEA věnovala Mozille, která by ji měla zahrnout do projektu Rhino a uvolnit už ve verzi 1.6.

Pokud jde o přínos E4X, je ECMA velmi optimistická. Hovoří o snadné a intuitivní práci s XML, rychlém osvojení nových postupů díky podobnosti s běžným javascriptovým programováním, zjednodušení kódu, urychlení vývoje a snížení nákladů. Zbývá snad ještě záchrana tropických pralesů, ale nic není ztraceno; ECMA už dnes připravuje příští verzi E4X s podporou jazyka XML Schema. Zatím se ale vraťme k současné verzi a podívejme se alespoň trochu pod povrch propagačních frází. Těmi nesnadnými a neintuitivními způsoby práce s XML, vůči nimž se E4X vymezuje, je především DOM a XSLT.

DOM je bezesporu krkolomný a neobratný. Dovolím si příklad. Mějme v proměnné customer načtený tento minidokument:

<customer>
  <name>Jan</name>
  <surname>Novák</surname>
</customer>

V DOMu (ECMAScript binding pro DOM Level 2) se jména našeho zákazníka musím dobrat takto:

var node = customer.documentElement.firstChild;
while (node.nodeType != 1) { node = node.nextSibling; }
var name = node.firstChild.nodeValue;

DOM trpí tím, že je příliš obecný. Je určen k navigaci po abstraktní stromové struktuře a nepředpokládá nic, co by nám mohlo práci s XML usnadnit. V tomto konkrétním případě by stačilo spolehnout se na nevýznamovost prázdných textových uzlů nebo aspoň na povinné slučování sousedních textových uzlů. E4X si se stejnou úlohou poradí takto:

var name = customer.name;

V prvním případě je customer DOMový objekt Document, zatímco ve druhém E4Xový objekt XMLList, ale to nehraje roli. Zjednodušení je nesporné, třebaže ho spíš než převratnosti E4X můžeme přičíst rigiditě DOMu.

Porovnání s XSLT takto snadno provést neumím. Jsou to jablka a hrušky; XSLT slouží k transformaci dokumentu na jiný dokument. Přístup pomocí jazyků XPath či XQuery (/customer/name) není napohled o nic složitější než E4X. Je ale pravda, že XPath/XQuery do skriptů moc nezapadá. Specifikace E4X opakovaně zmiňuje jako svoji přednost, že se „ECMAScriptový programátor“ nemusí učit žádné nové koncepty a přístupy. Připustíme-li, že nezanedbatelnou část těchto programátorů mohou tvořit autoři HTML, pro které je ECMAScript jejich prvním programovacím jazykem, získává tento argument na váze. E4X opravdu může této skupině programátorů usnadnit práci s XML. Ani zkušenější programátor nemusí pohrdnout možností dělat snadné věci snadno; pro ty obtížnější úlohy E4X (jako nepovinné rozšíření) nabízí integraci s DOMem a XPathem.

Jak rychle a zda vůbec E4X pronikne do běžných prohlížečů, je otázka. Zcela otevřená je také možnost případného hlubšího propojení E4X se specifickým prostředím prohlížeče; ECMA se zabývá jen jádrem jazyka. Pokud k něčemu takovému má dojít, uteče do té doby ještě hodně vody.

XML pro popis instalací

Firmy IBM a Novell podaly, z pozice členů W3C, návrh schématu XML pro popis instalačních řešení. Spoluautory návrhu jsou InstallShield Software a Zero G Software. Návrh obsahuje dvě specifikace: Installable Unit Deployment Descriptor (IUDD) a Installable Unit Package Format (IUPF).

Cílem IUDD je definovat schéma XML pro popis instalovatelné softwarové jednotky s ohledem na její nasazení a konfiguraci. Schéma IUDD obsáhne také popis agregace instalovatelných jednotek do komplexních, multiplatformních a heterogeních řešení. IUPF popisuje formát instalovatelných jednotek, přičemž vychází se současných běžně používaných instalačních formátů.

Specifikace W3C

Také na půdě W3C se v červenci urodilo. Z těch (alespoň pro mě) zajímavějších oblastí chci upozornit na pětici nových pracovních verzí specifikací kolem XSLT/XPath 2.0 a XQuery 1.0:

a také na už šestou pracovní verzi XHTML 2.0.

Našli jste v článku chybu?
Podnikatel.cz: "Okurku" vyřeší slevové servery. Už jim věřte

"Okurku" vyřeší slevové servery. Už jim věřte

Měšec.cz: Cestujte bez starostí, získejte výhodné pojištění

Cestujte bez starostí, získejte výhodné pojištění

Vitalia.cz: Recepty: Ač bez lepku, chutnají všem

Recepty: Ač bez lepku, chutnají všem

Podnikatel.cz: Eseróčko vs. živnost. Co vyhrává?

Eseróčko vs. živnost. Co vyhrává?

DigiZone.cz: Skylink zapojil nový transpondér

Skylink zapojil nový transpondér

DigiZone.cz: Soud zakázal šíření TV Markíza v ČR

Soud zakázal šíření TV Markíza v ČR

Lupa.cz: Zaměstnanec T-Mobilu ukradl data o zákaznících

Zaměstnanec T-Mobilu ukradl data o zákaznících

Měšec.cz: Ceny PHM v Evropě. Finty na úspory

Ceny PHM v Evropě. Finty na úspory

Měšec.cz: Rusové platí mobilem. Funguje to i v Česku

Rusové platí mobilem. Funguje to i v Česku

DigiZone.cz: Nova stahuje bonus díl „Tvoje tvář má...“

Nova stahuje bonus díl „Tvoje tvář má...“

120na80.cz: Krémy, nebo spreje na opalování?

Krémy, nebo spreje na opalování?

Podnikatel.cz: Babiš představil daňovou revoluci Moje daně

Babiš představil daňovou revoluci Moje daně

DigiZone.cz: Kanály Novy na Slovensku oficiálně?

Kanály Novy na Slovensku oficiálně?

DigiZone.cz: Satelitní Flix TV vyráží do boje

Satelitní Flix TV vyráží do boje

Vitalia.cz: 5 porcí ovoce a zeleniny: no ale jak na to?

5 porcí ovoce a zeleniny: no ale jak na to?

Lupa.cz: Vzali věc, která fungovala, a přidali internet

Vzali věc, která fungovala, a přidali internet

Vitalia.cz: Epidemie: Klíšťová encefalitida po ovčím sýru

Epidemie: Klíšťová encefalitida po ovčím sýru

DigiZone.cz: Klesající sledovanost USA filmů potřetí

Klesající sledovanost USA filmů potřetí

DigiZone.cz: Euro 2016: HbbTV na ČT opět kvalitní

Euro 2016: HbbTV na ČT opět kvalitní

Vitalia.cz: Máte chutě? Nejezděte do světa, ale do Dobřichovic

Máte chutě? Nejezděte do světa, ale do Dobřichovic