Hlavní navigace

Akta X 0407

5. 8. 2004
Doba čtení: 4 minuty

Sdílet

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

UX DAy - tip 2

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.

Byl pro vás článek přínosný?