Hlavní navigace

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?

6. 8. 2004 9:06

Roman Dagi Pichlik (neregistrovaný)

Skoda, ze bude XPath pouze jako volitelna soucast. Myslim si, ze "vyjadrovaci schopnost" XPath dalece presahuji moznosti, ktere bych jen stezi vykouzlil za pomoci klasickeho kodu.

5. 8. 2004 8:53

Petr Cimprich (neregistrovaný)

Omlouvam se za nejednoznacnost. Cislo verze 1.6 se vztahuje k Rhinu (aktualne 1.5R5), nikoli k Mozille.

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Podnikatel.cz: Vládu obejde, kvůli EET rovnou do sněmovny

Vládu obejde, kvůli EET rovnou do sněmovny

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

120na80.cz: Bojíte se encefalitidy?

Bojíte se encefalitidy?

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Lupa.cz: Babiš: E-shopů se EET možná nebude týkat

Babiš: E-shopů se EET možná nebude týkat

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Vitalia.cz: Chtějí si léčit kvasinky. Lék je jen v Německu

Chtějí si léčit kvasinky. Lék je jen v Německu

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Podnikatel.cz: Prodává přes internet. Kdy platí zdravotko?

Prodává přes internet. Kdy platí zdravotko?

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Podnikatel.cz: Na poslední chvíli šokuje vyjímkami v EET

Na poslední chvíli šokuje vyjímkami v EET

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU