E4X © Reiska, 2012
JavaScript Keksittiin 1995 (Ensin Netscape 2 selaimeen: Mocha LiveScript JavaScript) Standardoitiin vuonna 1997 ECMA-262 Edition 3 standardi vuonna 2000: JavaScript 1.5/JScript5/ActionScript3. Edition 5 vuonna ECMA-262 Selainten oletus (default) skriptauskieli. Kaikkien Mozilla- ja Google-sovellusten perusta.
E4X, ECMAScript for XML Aloitteen tekijä ECMAScript for XML standardille oli BEA (nykyisin Oracle): John Schneider, Terry Lucas ja muut Tehtiin XML operaatioiden helpottamiseksi Oliopohjainen uusi XML olio Korvaa sekä transformaatio- eli XSLT teknologioita että proseduraalisia eli DOM-navigointiteknologioita. XML on olio, esim. var x = new XML(); Toimii lausekkeissa, taulukoissa, olioissa ja funktioissa muuttujista ja olioista tutulla tavalla. Standardi ECMA-357, 2 nd edition (December 2005) ja ISO/IEC Kuuluu JavaScript 1.6+:aan.ECMA-357
E4X Laajennus ECMA-262 Scriptiin, virallinen standardi (ECMA 357), joka lisää skriptaukseen suoran XML-tuen. XML-olio määritellään samalla tavalla kuin esim. Date- tai Array-oliotkin, eli ”natiivisti”: var x = new XML(); // XML-olio x var y = new Date(); // Date-olio y var z = new Array(); // Array-olio z XML-oliona käsittely JavaScriptillä on ”luonnollisempaa” kuin esimerkiksi DOM (Document Object Model) mallilla. Esimerkkejä (Tutki selaimella lähdekoodit). Esimerkkejä
XML ja JavaScript Uusi XML olio voidaan luoda suoraan merkkijonosta var sposti = new XML(" sisältö "); tai yksinkertaisesti vain kirjoittamalla var sposti = Reiska... jne... ; HUOM: Sidonta DOM ja E4X mallien välillä puuttuu molempiin suuntiin Eli XML käärettä DOM olioille ei ole: var xmlObj = new XML(domObj); // Ei toimi!!!
E4X XML-dokumentti on olio, joka on helppo jäsentää (parse). Esimerkiksi, jos: var x = new XML(); x = Tove Jani Reminder Don't forget me this weekend! ;
E4X document.write(": "+x.body); tulostaa attribuutin ja elementin sisällön: runko: Don’t forget me this weekend!
Tutut piste-operaattorit Reino Aarinen Tekniikantie 2 Pori Satakunta... Hilavitkutin Hihhuli var osoite = order.customer.address; var toinen_tuote = order.item[1];
Uudet operaattorit var tilaus = … ; var tuotteet = tilaus.item; // XMLList item-elementeistä var hinnat = tilaus..price; // Jälkeläinen var urgentItems = == "rush"); // Ehto var itemAttrs = // Kaikki attribuutit
Esimerkki
Muuttujat elementtien ja attribuuttien nimissä
Iterointi
Esimerkki html-sivun tuottamisesta:
… tuottaa koodin