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.

Ohodnoťte jako ve škole:

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

Našli jste v článku chybu?
Zasílat nově přidané příspěvky e-mailem
Podnikatel.cz: Kontrola ze sociálky se nedozvonila, má průšvih

Kontrola ze sociálky se nedozvonila, má průšvih

Lupa.cz: Osmý plán na stavbu rychlých sítí je nedodělek

Osmý plán na stavbu rychlých sítí je nedodělek

Vitalia.cz: Pro otrlé: 42 obrázků, které budou na cigaretách

Pro otrlé: 42 obrázků, které budou na cigaretách

120na80.cz: V zákulisí farmafirmy: růžový, ale i bílý Ibalgin

V zákulisí farmafirmy: růžový, ale i bílý Ibalgin

Podnikatel.cz: Pivo s nižším DPH zatím nebude, návrh odložen

Pivo s nižším DPH zatím nebude, návrh odložen

Podnikatel.cz: Není jim to, tak to vrátí. Víme, jak na ně

Není jim to, tak to vrátí. Víme, jak na ně

Vitalia.cz: Ministerstvo: Palmový olej nezakážeme, není důvod

Ministerstvo: Palmový olej nezakážeme, není důvod

Vitalia.cz: Pozor na potraviny s atropinem

Pozor na potraviny s atropinem

Vitalia.cz: Manipulace odpůrců GMO

Manipulace odpůrců GMO

Lupa.cz: Google navádí, jak krást fotky, stěžuje si ČTK

Google navádí, jak krást fotky, stěžuje si ČTK

Lupa.cz: Tip: tucet užitečných shieldů pro Arduino

Tip: tucet užitečných shieldů pro Arduino

120na80.cz: Pijete? A máte vlastní alkoholtester?

Pijete? A máte vlastní alkoholtester?

Podnikatel.cz: First minute funguje. Čím dřív, tím levněji

First minute funguje. Čím dřív, tím levněji

Lupa.cz: Výmluvy. Ty ministerstvo průmyslu umí skvělě

Výmluvy. Ty ministerstvo průmyslu umí skvělě

Podnikatel.cz: Podal přiznání, má přeplatek. Nevrátí mu ho

Podal přiznání, má přeplatek. Nevrátí mu ho

Podnikatel.cz: Co všechno se mění v účetnictví?

Co všechno se mění v účetnictví?

Měšec.cz: Katalogoví šmejdi. Oberou vás o 30 tisíc a legálně.

Katalogoví šmejdi. Oberou vás o 30 tisíc a legálně.

Root.cz: Tails: superbezpečný systém nejen pro Snowdena

Tails: superbezpečný systém nejen pro Snowdena

120na80.cz: Domácí homeopatická lékárnička

Domácí homeopatická lékárnička

Vitalia.cz: Levnější pivo? Babiš neví, co činí

Levnější pivo? Babiš neví, co činí

Ušetřete