Scripting JAX-WS

Total Page:16

File Type:pdf, Size:1020Kb

Scripting JAX-WS Toward Integration Scripting JAX-WS Steve Vinoski • IONA Technologies n my last column, I explored possible reasons differs from class-based languages as well; because for the existence of “the language divide,” JavaScript has no notion of classes, it supports I which arises in the traditional standards-based inheritance through prototype objects. middleware community because few developers JavaScript is best known for its use in Web use dynamic languages to implement their appli- pages. One currently popular approach for enhanc- cations (March/April 2006, pp. 82–84). Instead, ing sites’ interactive nature and responsiveness is they seem to strongly favor Java and C++. via Asynchronous JavaScript and XML (AJAX; see As a long-time fan of both dynamic languages http://en.wikipedia.org/wiki/AJAX). With AJAX, and middleware, I’d like to help shrink or even Web pages contain JavaScript code that asyn- eliminate the divide, but describing the issues and chronously invokes requests on a Web server by highlighting the situation isn’t the same as direct- creating an XmlHttpRequest request object, ly contributing a usable solution. This time, I attaching to it a JavaScript callback function to describe an integration of the ECMAScript pro- handle the response, and then invoking the re- gramming language1 — more commonly known as quest. AJAX enhances responsiveness and inter- JavaScript — with an implementation of the Java activity by allowing specific page updates without API for XML Web Services (JAX-WS) 2.0.2 This requiring full page reloads. All the hype currently integration lets developers implement JAX-WS surrounding AJAX could lead you to believe that services using either plain JavaScript or its XML- it’s a new approach, but it’s really been in use for oriented counterpart, the ECMAScript for XML about 10 years. Its current popularity is due to the (E4X) language.3 fact that different Web browsers have finally gained reasonable consistency in their support of JavaScript and E4X JavaScript. Despite its popularity for use within Despite its name, JavaScript and the Java lan- Web pages, however, JavaScript isn’t limited to guage are unrelated, except perhaps by some browser applications. similarity in syntax. Brendan Eich of Mozilla E4X is a JavaScript extension geared toward invented JavaScript in 1995 as a scripting lan- handling XML. Specifically, it treats XML as a guage for use within the Netscape Web browser to first-class type that can be created, accessed, and allow Web pages to be more dynamic. The result modified using intuitive syntax — as with any is an interpreted language with a simplicity that other JavaScript type. Later I’ll show examples of belies its power. both JavaScript and E4X. JavaScript supports only a few types: numbers, strings, booleans, functions, and objects (it also JAX-WS 2.0 supports arrays, but they’re technically objects as The JAX-WS 2.0 specification — the new version well). It supports object-oriented programming, but of the Java API for XML-Based RPC (JAX-RPC) — in a different way than most developers are used defines standard APIs and approaches for building to. JavaScript objects are essentially data struc- Java-based Web services. As its name implies, tures containing name–value pairs called pro- JAX-RPC was concerned mostly with how to perties. Because JavaScript supports first-class implement RPC-oriented Web services in Java. functions, object methods are simply properties JAX-WS expands and improves on the specifica- whose values are functions. JavaScript inheritance tion in several ways, including IEEE INTERNET COMPUTING 1089-7801/06/$20.00 © 2006 IEEE Published by the IEEE Computer Society MAY • JUNE 2006 91 Toward Integration • tying together and updating its sup- between XML data and native lan- Implementation port for several base Web services guage objects.”7 They refer to such Implementing the underpinnings for specifications, such as SOAP 1.2; mappings as object/XML mappings, JavaScript Web service implementa- • providing a coherent design for often abbreviated as “O/X mappings” tions in JAX-WS obviously requires using Java annotations to specify or “X/O mappings.” supporting infrastructure for both Web services metadata; Attempting to devise an X/O map- JAX-WS and JavaScript. In develop- • providing support for document- ping for JavaScript service imple- ing a JAX-WS implementation, I chose oriented Web services, asynchro- mentations would create much the the Celtix open-source enterprise ser- nous services, and services that use same problems as those associated vice bus (http://celtix.objectweb.org) — transports other than HTTP; with the Java X/O mappings. Fortu- in part because, as of this writing, it’s • addressing implementation issues nately, although JAX-WS also relies less than a year old, and its design and surrounding handlers, which are on an X/O mapping, and thus presum- implementation are both very clean. interceptors that provide hooks into ably suffers from the same problems This helps simplify the job of figuring message flows between senders and that Loughran and Smith attribute to out how to integrate JavaScript into it. receivers; and JAX-RPC, it offers other approaches Another reason I chose Celtix is that • describing practices for dealing for implementing services as well. One some of the primary developers sit a with versioning in Web services. improvement that JAX-WS makes couple rows away from me at my over JAX-RPC is that it provides dis- office, so answers are readily available Systems based on RPC-oriented patch and provider interfaces for deal- if I have any questions about the code. specifications such as JAX-RPC gener- ing directly with messages — typically, Given that Celtix is implemented in Java, it’s best to use a Java-based JavaScript engine such as the very pop- Because JavaScript doesn’t support Java ular Mozilla Rhino open-source engine (see www.mozilla.org/rhino/). Nearly a annotations, it can’t fulfill JAX-WS decade old, it supports JavaScript and E4X and is readily embeddable into annotation requirements by itself. Java applications. With Rhino, it’s rel- atively easy to invoke Java methods from JavaScript and vice versa. ally attempt to let applications work SOAP messages or SOAP message pay- Support for JavaScript service with data in the form of native pro- loads — to avoid RPC-oriented mar- implementations in Celtix is relatively gramming language types. Such sys- shaling layers and the problems straightforward. First, Celtix provides tems hide the mechanisms by which associated with X/O mappings. an application class that accepts the application data are marshaled to and The dispatch and provider inter- names of JavaScript files, E4X files, or from network form, in addition to hid- faces fit well with JavaScript because the directories containing them. For ing the network data formats. Making an X/O JavaScript mapping would each JavaScript file (with a .js suffix) remote requests look like local method likely be unnatural to JavaScript pro- or E4X file (with a .jsx suffix) specified calls might seem like a good idea at first grammers. In a Web browser environ- on the command line, the application glance, but the approach has several ment, JavaScript programs access calls Rhino to compile the file; assum- significant and well-documented prob- HTML pages and XML data through ing that this succeeds, the application lems. These include the fact that remote Document Object Model (DOM) class then creates JAX-WS Provider methods can suffer partial failures with- objects. Therefore, within a JAX-WS instances and publishes them as ser- in the overall distributed system that setting, providing the JavaScript pro- vice endpoints. can’t occur with local calls,4 as well as grammer with a DOM-based approach One tricky problem with publish- that mapping between marshaled data for accessing raw JAX-WS messages ing a JavaScript service implementa- types and language-specific types is and message payloads through a tion is determining what form the often imperfect.5 As I described in my provider interface introduces a natural implementation expects for incoming September/October 2005 column,6 path for developing JavaScript-based requests. This problem’s two aspects Steve Loughran and Edmund Smith of service endpoints. Given that E4X are determining Hewlett-Packard Laboratories authored treats XML as a first-class type, direct a detailed critique of JAX-RPC, which access to XML messages and message • whether the implementation ex- included the fact that the specification payloads is an even better fit in E4X pects a full message or just a pay- “relies on a perfect two-way mapping than DOM in plain JavaScript. load, and 92 MAY • JUNE 2006 www.computer.org/internet/ IEEE INTERNET COMPUTING Scripting JAX-WS • whether the implementation is JavaScript objects that specify annota- point implementation. The delegator plain JavaScript or E4X. tion metadata. Upon finding the meta- then converts the request as required data, Celtix uses it to register the by the implementation. If the imple- The latter is easy, given that the input specified JavaScript or E4X service end- mentation is plain JavaScript, the cur- file suffixes should be different for the point implementation in its runtime. rent delegator implementation wraps two languages. The former isn’t quite For example, such a variable might the incoming DOM document as a as straightforward. look like this: JavaScript object and passes it to the JAX-WS relies on Java annotations JavaScript invoke function. Given for specifying metadata associated var WebServiceProvider1 = { that the Rhino JavaScript engine with Web service implementations. ‘wsdlLocation’: allows direct access to Java code from These annotations generally help tie ‘file:./hello_world.wsdl’, JavaScript, the latter can invoke Java implementations together with ‘serviceName’: methods on the Java DOM object just the details of the WSDL they imple- ‘SOAPService1’, as normal Java code would.
Recommended publications
  • International Standard Iso 32000-2
    This preview is downloaded from www.sis.se. Buy the entire standard via https://www.sis.se/std-922178 INTERNATIONAL ISO STANDARD 32000-2 First edition 2017-07 Document management — Portable document format — Part 2: PDF 2.0 Gestion de documents — Format de document portable — Partie 2: PDF 2.0 Reference number ISO 32000-2:2017(E) © ISO 2017 This preview is downloaded from www.sis.se. Buy the entire standard via https://www.sis.se/std-922178 ISO 32000-2:2017(E) COPYRIGHT PROTECTED DOCUMENT © ISO 2017, Published in Switzerland All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized otherwise in any form orthe by requester. any means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address below or ISO’s member body in the country of Ch. de Blandonnet 8 • CP 401 ISOCH-1214 copyright Vernier, office Geneva, Switzerland Tel. +41 22 749 01 11 Fax +41 22 749 09 47 www.iso.org [email protected] ii © ISO 2017 – All rights reserved This preview is downloaded from www.sis.se. Buy the entire standard via https://www.sis.se/std-922178 ISO 32000-2:2017(E) Contents Page Foreword ................................................................................................................................................................. vii Introduction .........................................................................................................................................................
    [Show full text]
  • Ecma International External Liaison Report for 2013-2014
    Ecma/TC39/2014/029 Ecma/TC49/2014/010 Ecma International External Liaison Report for 2013–2014 Prepared for the ISO/IEC JTC 1/SC 22 Plenary in Madrid, Spain September 8–9, 2014 Prepared by Rex Jaeschke [email protected] Date: 2014-07-17 Recommendation to SC 22 regarding the Portable Common Tool Environment (PCTE) Standards The draft agenda for the 2014 Plenary of SC 22 lists the following standards as being up for Periodic Review: • ISO/IEC 13719-1:1998 Information technology -- Portable Common Tool Environment (PCTE) – Part 1: Abstract specification • ISO/IEC 13719-2:1998 Information technology -- Portable Common Tool Environment (PCTE) – Part 2: C programming language binding • ISO/IEC 13719-3:1998 Information technology -- Portable common tool environment (PCTE) – Part 3: Ada programming language binding • ISO/IEC 13719-4:1998 Information technology -- Portable Common Tool Environment (PCTE) – Part 4: IDL binding (Interface Definition Language) These standards were developed and published by Ecma, and then Fast-Tracked to JTC 1. No work has been done on them since and there is no longer a Technical Committee for PCTE. As such, Ecma recommends that SC 22 stabilize these standards. Ecma (www.ecma-international.org) currently has two Technical Committees, TC39 and TC49 (the latter having multiple Task Groups), with SC 22-related projects, as follows: 1. TC39 (ECMAScript language): ECMAScript 5th edition was adopted by the Ecma General Assembly in December 2009, and then published as ISO/IEC 16262:2011 (which ECMA-262 edition 5.1 now matches). The editor of record for the standard is Allen Wirfs-Brock.
    [Show full text]
  • XML: Looking at the Forest Instead of the Trees Guy Lapalme Professor Département D©Informatique Et De Recherche Opérationnelle Université De Montréal
    XML: Looking at the Forest Instead of the Trees Guy Lapalme Professor Département d©informatique et de recherche opérationnelle Université de Montréal C.P. 6128, Succ. Centre-Ville Montréal, Québec Canada H3C 3J7 [email protected] http://www.iro.umontreal.ca/~lapalme/ForestInsteadOfTheTrees/ Publication date April 14, 2019 XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/ XML: Looking at the Forest Instead of the Trees Guy Lapalme Professor Département d©informatique et de recherche opérationnelle Université de Montréal C.P. 6128, Succ. Centre-Ville Montréal, Québec Canada H3C 3J7 [email protected] http://www.iro.umontreal.ca/~lapalme/ForestInsteadOfTheTrees/ Publication date April 14, 2019 Abstract This tutorial gives a high-level overview of the main principles underlying some XML technologies: DTD, XML Schema, RELAX NG, Schematron, XPath, XSL stylesheets, Formatting Objects, DOM, SAX and StAX models of processing. They are presented from the point of view of the computer scientist, without the hype too often associated with them. We do not give a detailed description but we focus on the relations between the main ideas of XML and other computer language technologies. A single compact pretty-print example is used throughout the text to illustrate the processing of an XML structure with XML technologies or with Java programs. We also show how to create an XML document by programming in Java, in Ruby, in Python, in PHP, in E4X (Ecmascript for XML) and in Swift. The source code of the example XML ®les and the programs are available either at the companion web site of this document or by clicking on the ®le name within brackets at the start of the caption of each example.
    [Show full text]
  • Download and Execution, Along with Metadata That Dr
    Table of Contents Preface 5 Purpose and Membership 7 Ecma's role in International Standardization 9 Organization of Ecma International* 10 General Assembly 13 Ordinary members 14 Associate members 16 SME members 17 SPC members 18 Not-for-Profit members 19 Technical Committees 21 Index of Ecma Standards 57 Ecma Standards and corresponding International and European Standards 61 Technical Reports 81 List of Representatives 84 Ecma By-laws 139 Ecma Rules 146 Code of Conduct in Patent Matters 151 Withdrawn Ecma Standards and Technical Reports 153 History of Ecma International 165 Past Presidents / Secretary General 166 * Often called Ecma, or ECMA (in the past), short for Ecma International. - 3 - Preface Information Technology, Telecommunications and Consumer Electronics are key factors in today's economic and social environment. Effective interchange both of commercial, technical, and administrative data, text and images and of audiovisual information is essential for the growth of economy in the world markets. Through the increasing digitalization of information technology, telecommunications and consumer electronics are getting more and more integrated. Open Systems and Distributed Networks based on worldwide recognized standards will not only provide effective interchange of information but also help to remove technical barriers to trade. In particular harmonized standards are recognized as a prerequisite for the establishment of the European economic area. From 1961 until 1994, ECMA (European Computer Manufacturers Association), then Ecma International (Ecma, for short) has actively contributed to worldwide standardization in information technology, communications and consumer electronics (ICT and CE). More than 380 Ecma Standards and 90 Technical Reports of high quality have been published.
    [Show full text]
  • Ecma Template for Minutes
    Memento 2010 Table of Contents Preface 2 Purpose and Membership 3 Ecma's role in International Standardization 4 Organization of Ecma International* 5 General Assembly 7 Ordinary members 8 Associate members 9 SME members 10 SPC members 11 Not-for-Profit members 12 Technical Committees 14 Index of Ecma Standards 45 Ecma Standards and corresponding International and European Standards 48 Technical Reports 63 List of Representatives 66 Ecma By-laws 109 Ecma Rules 115 Code of Conduct in Patent Matters 119 Withdrawn Ecma Standards and Technical Reports 121 History of Ecma International 129 About the Ecma Mementos 130 Past Presidents / Secretaries General 131 * Often called Ecma, or ECMA (in the past), short for Ecma International. Ecma International Rue du Rhône 114 CH-1204 Geneva T/F: +41 22 849 6000/01 www.ecma-international.org IW Memento10.doc 20/01/2010 15:49:00 For Ecma use only Preface Information Technology, Telecommunications and Consumer Electronics are key factors in today's economic and social environment. Effective interchange both of commercial, technical, and administrative data, text and images and of audiovisual information is essential for the growth of economy in the world markets. Through the increasing digitalization of information technology, telecommunications and consumer electronics are getting more and more integrated. Open Systems and Distributed Networks based on worldwide recognized standards will not only provide effective interchange of information but also help to remove technical barriers to trade. In particular harmonized standards are recognized as a prerequisite for the establishment of the European economic area. From 1961 until 1994, ECMA (European Computer Manufacturers Association), then Ecma International (Ecma, for short) has actively contributed to worldwide standardization in information technology, communications and consumer electronics (ICT and CE).
    [Show full text]
  • Download Slides
    Mozilla Rhino Attila Szegedi @asz Thursday, October 13, 11 History • One of the oldest non-Java language runtimes on the JVM • Originally part of Mozilla’s all-Java browser project from 1997. • Has its own bytecode generator engine from day one. Thursday, October 13, 11 What is it? • It’s just JavaScript: • you can run any JavaScript program on top of it. • It’s more than JavaScript: • it integrates with the JVM. You can use Java objects and libraries. Thursday, October 13, 11 Compatibility • Most of ECMAScript 5 • Everything except strict mode • Full JS1.7 (and earlier) support • Partial JS 1.8 support • expression closures, destructuring assignment • no generator expressions • ECMAScript for XML (E4X) • JSON parser/stringifier Thursday, October 13, 11 What it isn’t? • It isn’t a browser JavaScript runtime: • Doesn’t come with HTML DOM out of the box. • HtmlUnit project can be used if that’s needed. Thursday, October 13, 11 Optimization settings • Three optimization levels: • -1: pure interpreter • 0: bytecode compiler; no optimizations • 9: bytecode compiler with optimizations Thursday, October 13, 11 Optimization settings • Let’s compare them using fib(30) function time(f) { t1 = java.lang.System.currentTimeMillis() f() t2 = java.lang.System.currentTimeMillis() print(t2 - t1) } function fib(n) { return n < 2 ? n : fib(n-1) + fib(n-2) } time(function() { fib(30) }) Thursday, October 13, 11 Optimization settings • Let’s compare them using fib(30) • Interpreted took 14 seconds • Opt 0 took 0.9 seconds • Opt 9 took 0.3 seconds Thursday, October 13, 11 When to use which? • Opt 9 in most cases • Opt 0 - don’t really have a modern use case for it • Opt -1: constrained devices, environments that don’t allow you to load generated bytecode at runtime, or when you need continuations*.
    [Show full text]
  • Code Injection Vulnerabilities in Web Applications - Exemplified at Cross-Site Scripting Martin Johns
    Dissertation zur Erlangung des akademischen Grades eines Doktors der Naturwissenschaften Code Injection Vulnerabilities in Web Applications - Exemplified at Cross-site Scripting Martin Johns Eingereicht an der Fakult¨atf¨urInformatik und Mathematik der Universit¨atPassau Gutachter: Prof. Dr. Joachim Posegga Prof. Dr. Dieter Gollmann Submitted April 14th 2009, defended July 22nd 2009 2 Abstract The majority of all security problems in today’s Web applications is caused by string- based code injection, with Cross-site Scripting (XSS) being the dominant representative of this vulnerability class. This thesis discusses XSS and suggests defense mechanisms. We do so in three stages: First, we conduct a thorough analysis of JavaScript’s capabilities and explain how these capabilities are utilized in XSS attacks. We subsequently design a systematic, hierarchical classification of XSS payloads. In addition, we present a comprehensive sur- vey of publicly documented XSS payloads which is structured according to our proposed classification scheme. Secondly, we explore defensive mechanisms which dynamically prevent the execution of some payload types without eliminating the actual vulnerability. More specifically, we discuss the design and implementation of countermeasures against the XSS payloads “Session Hijacking”, “Cross-site Request Forgery”, and attacks that target intranet re- sources. We build upon this and introduce a general methodology for developing such countermeasures: We determine a necessary set of basic capabilities an adversary needs for successfully executing an attack through an analysis of the targeted payload type. The resulting countermeasure relies on revoking one of these capabilities, which in turn renders the payload infeasible. Finally, we present two language-based approaches that prevent XSS and related vul- nerabilities: We identify the implicit mixing of data and code during string-based syn- tax assembly as the root cause of string-based code injection attacks.
    [Show full text]
  • NATO Interoperability Standards and Profiles
    NISP Volume 1 ADatP-34(K)-REV1 Allied Data Publication 34 (ADatP-34(K)) NATO Interoperability Standards and Profiles Volume 1 Introduction (Version 11) 3 Aug 2018 C3B Interoperability Profiles Capability Team NISP Volume 1 ADatP-34(K)-REV1 NISP Volume 1 ADatP-34(K)-REV1 Table of Contents 1. Introduction .......................................................................................................................... 1 1.1. Purpose of the NISP ................................................................................................. 3 1.2. Intended Audience ..................................................................................................... 3 2. Basic Concepts ..................................................................................................................... 5 2.1. Standards ................................................................................................................... 5 2.2. STANAG ................................................................................................................... 5 2.3. Interoperability Profiles ............................................................................................. 5 2.4. Basic Standards Profile ............................................................................................. 6 2.5. Creating relationships to other concepts and planning objects within NATO .......... 7 2.5.1. Architecture Building Block .......................................................................... 7 2.5.2. FMN Spiral Specifications
    [Show full text]
  • Vrealize Orchestrator 8.2 Plug-Ins
    Using VMware vRealize Orchestrator 8.2 Plug-Ins 15 MARCH 2021 vRealize Orchestrator 8.2 Using VMware vRealize Orchestrator 8.2 Plug-Ins You can find the most up-to-date technical documentation on the VMware website at: https://docs.vmware.com/ VMware, Inc. 3401 Hillview Ave. Palo Alto, CA 94304 www.vmware.com © Copyright 2008-2021 VMware, Inc. All rights reserved. Copyright and trademark information. VMware, Inc. 2 Contents Using VMware vRealize Orchestrator Plug-Ins 9 1 Introduction to vRealize Orchestrator Plug-Ins 10 vRealize Orchestrator Architecture 11 Plug-Ins Installed with the vRealize Orchestrator Server 11 Access the vRealize Orchestrator API Explorer 14 Time Zone Codes 15 2 Configure the vRealize Orchestrator Plug-Ins 18 Manage vRealize Orchestrator Plug-Ins 18 Install or Update a vRealize Orchestrator Plug-In 19 Delete a Plug-In 19 3 Using the Active Directory Plug-In 21 Configuring the Active Directory Plug-In 21 Using the Active Directory Plug-In Workflow Library 22 Computer Workflows 22 Organizational Unit Workflows 22 User Workflows 23 User Group Workflows 23 Client-Side Load Balancing for the Active Directory Plug-In 24 4 Using the AMQP Plug-In 25 Configuring the AMQP Plug-In 25 Add a Broker 25 Subscribe to Queues 26 Update a Broker 27 Using the AMQP Plug-In Workflow Library 27 Declare a Binding 28 Declare a Queue 28 Declare an Exchange 29 Send a Text Message 30 Delete a Binding 31 5 Using the Configuration Plug-In 32 6 Using the Dynamic Types Plug-In 34 Dynamic Types Configuration Workflows 34 VMware, Inc.
    [Show full text]
  • Final Draft 2Nd Edition of ECMA-357
    ECMA-357 2nd Edition / December 2005 ECMAScript for XML (E4X) Specification Standard ECMA-357 nd 2 Edition / December 2005 ECMAScript for XML (E4X) Specification Ecma International Rue du Rhône 114 CH-1204 Geneva T/F: +41 22 849 6000/01 www.ecma-international.org . Introduction On 13 June 2002, a group of companies led by BEA Systems proposed a set of programming language extensions adding native XML support to ECMAScript (ECMA-262). The programming language extensions were designed to provide a simple, familiar, general purpose XML programming model that flattens the XML learning curve by leveraging the existing skills and knowledge of one of the largest developer communities worldwide. The benefits of this XML programming model include reduced code complexity, tighter revision cycles, faster time to market, decreased XML footprint requirements and looser coupling between code and XML data. The ECMAScript group (Ecma TC39-TG1) unanimously agreed to the proposal and established a sub-group to standardize the syntax and semantics of a general purpose, cross platform, vendor neutral set of programming language extensions called ECMAScript for XML (E4X). The development of this Standard started on 8 August 2002. This Standard was developed as an extension to ECMAScript Edition 3, but may be applied to other versions of ECMAScript as well. This Standard adds native XML datatypes to the ECMAScript language, extends the semantics of familiar ECMAScript operators for manipulating XML data and adds a small set of new operators for common XML operations, such as searching and filtering. It also adds support for XML literals, namespaces, qualified names and other mechanisms to facilitate XML processing.
    [Show full text]
  • ECMA-357 Ecmascript for XML (E4X) Specification
    ECMA-357 1st Edition / June 2004 ECMAScript for XML (E4X) Specification Standard ECMA-357 st 1 Edition / June 2004 ECMAScript for XML (E4X) Specification Brief History On 13 June 2002, a group of companies led by BEA Systems proposed a set of programming language extensions adding native XML support to ECMAScript (ECMA-262). The programming language extensions were designed to provide a simple, familiar, general purpose XML programming model that flattens the XML learning curve by leveraging the existing skills and knowledge of one of the largest developer communities worldwide. The benefits of this XML programming model include reduced code complexity, tighter revision cycles, faster time to market, decreased XML footprint requirements and looser coupling between code and XML data. The ECMAScript group (Ecma TC39-TG1) unanimously agreed to the proposal and established a sub-group to standardize the syntax and semantics of a general purpose, cross platform, vendor neutral set of programming language extensions called ECMAScript for XML (E4X). The development of this Standard started on 8 August 2002. This Standard was developed as an extension to ECMAScript Edition 3, but may be applied to other versions of ECMAScript as well. This Standard adds native XML datatypes to the ECMAScript language, extends the semantics of familiar ECMAScript operators for manipulating XML data and adds a small set of new operators for common XML operations, such as searching and filtering. It also adds support for XML literals, namespaces, qualified names and other mechanisms to facilitate XML processing. This Standard will be integrated into future editions of ECMA-262 (ECMAScript). The ECMAScript group is working on significant enhancements for future editions of the ECMAScript language, including mechanisms for defining XML types using the XML Schema language and support for classes.
    [Show full text]
  • CGT 353: Principles of Interactive and Dynamic Media XML and E4X with Actionscript 3.0
    CGT 353: Principles of Interactive and Dynamic Media XML and E4X with ActionScript 3.0 Intro: • Flash has had the ability to work with XML since AS 1.0 • In AS 2.0, we use the XML class, which was based on the W3C Document Object Model (DOM) • As with most other things in AS 3.0, the toolset for manipulating XML has been changed. • AS 3.0 now uses ECMAScript for XML…also known as E4X • E4X is an official ECMA-262 extension for working with XML as a native datatype • Used to improve the integration of XML with scripting languages like JavaScript and ActionScript XML data offers several advantages over URL-encoded data, including: • When creating XML manually (for a static XML document) or programmatically (from a ColdFusion script, PHP script, etc.), it is much easier to represent complex data. • Most server-side scripting languages offer built-in functionality for reading and generating XML data. • XML is a standard used for the transfer and storage of data across all kinds of applications and platforms. An XML Review: • Take the following code from the text: <BOOK ISBN="0141182806"> <TITLE>Ulysses</TITLE> <AUTHOR>Joyce, James</AUTHOR> <PUBLISHER>Penguin Books Ltd</PUBLISHER> </BOOK> • Nodes, parents, children, attributes, elements…heard it before. • What’s the first child node of <BOOK>? • That’s right…it’s the first insignificant whitespace. • In E4X, whitespace counts: o carriage return (\u000D) o space (\u0020) o line feed (\u000A) o tab (\u0009) • So technically <BOOK> has seven nodes, not four. • By default whitespace nodes are ignored by the E4X parser, so we don’t really have to worry about it.
    [Show full text]