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ů.

IOT

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.

Ohodnoťte jako ve škole:

Průměrná známka 2,73

Našli jste v článku chybu?
Zasílat nově přidané názory e-mailem
120na80.cz: Nové trendy v zubních pastách

Nové trendy v zubních pastách

Vitalia.cz: Prodají farmáři svoji duši?

Prodají farmáři svoji duši?

Vitalia.cz: Takhle ne! Nesnažte se urychlit vývoj dítěte

Takhle ne! Nesnažte se urychlit vývoj dítěte

Podnikatel.cz: Nové slevy na děti od května. V jaké výši?

Nové slevy na děti od května. V jaké výši?

Lupa.cz: Roaming se mění. Co byste o něm měli vědět?

Roaming se mění. Co byste o něm měli vědět?

Vitalia.cz: Pomóc! Obyčejný knoflík je dohání k šílenství

Pomóc! Obyčejný knoflík je dohání k šílenství

Podnikatel.cz: Ve hře jsou další výjimky u EET

Ve hře jsou další výjimky u EET

Podnikatel.cz: Poděs, Slibotechna a další. Ty berte obloukem

Poděs, Slibotechna a další. Ty berte obloukem

Lupa.cz: Jaký je Průvodce světem Arduina?

Jaký je Průvodce světem Arduina?

Vitalia.cz: SZPI uzavřela Lidl. Takhle to tam vypadalo

SZPI uzavřela Lidl. Takhle to tam vypadalo

Vitalia.cz: Maurer: Nechci Jamieho Olivera za pět miliónů

Maurer: Nechci Jamieho Olivera za pět miliónů

Vitalia.cz: Na přebytek bílkovin nemáme játra ani ledviny

Na přebytek bílkovin nemáme játra ani ledviny

Lupa.cz: Kolik je v Česku amatérských elektroniků?

Kolik je v Česku amatérských elektroniků?

120na80.cz: Chtějí být jako Ken a Barbie. Končí jako trosky

Chtějí být jako Ken a Barbie. Končí jako trosky

Podnikatel.cz: Obavy z EET? Nejvíc se bojí, aby na to měli

Obavy z EET? Nejvíc se bojí, aby na to měli

Lupa.cz: V Brně vyvinuli rychlý internet do letadel

V Brně vyvinuli rychlý internet do letadel

Podnikatel.cz: Prodá jen 15 obědů denně. Co dělá špatně?

Prodá jen 15 obědů denně. Co dělá špatně?

Podnikatel.cz: Stahujte přehledy pro všechny pojišťovny

Stahujte přehledy pro všechny pojišťovny

Vitalia.cz: Tyhle dorty se prostě nepovedly

Tyhle dorty se prostě nepovedly

Lupa.cz: Stát chce vytěsnit malé firmy z trhu

Stát chce vytěsnit malé firmy z trhu

Ušetřete