Ha ha.. :-) I was wondering why you were being so open about this stuff!
 
No harm done, and it's only a taste of some of the great stuff we're thinking about, guys! ;-)
 
-Sho


From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Gordon Smith
Sent: Tuesday, May 17, 2005 5:32 PM
To: '[email protected]'
Subject: RE: [flexcoders] E4X in Flex 2.0, part 1: Reading XML

OK, OK. Next time I'll try to leak something that will get me fired.
Somebody on the list can give me a job as a Flex developer.

- Gordon


-----Original Message-----
From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of James Ward
Sent: Tuesday, May 17, 2005 5:24 PM
To: [email protected]
Subject: RE: [flexcoders] E4X in Flex 2.0, part 1: Reading XML


ROFL!  Come on Gordon!  If you are going to accidentally leak info, can
you make it a bit juicier?  ;)  Maybe something about some super-secret
project or the Adobe buyout or Flex 2 release dates.  This is good info,
but not *that* exciting!

Still laughing...  :)

-James


On Tue, 2005-05-17 at 17:15 -0700, Gordon Smith wrote:
> Oops... I meant to send this to an internal group, not to flexcoders.
> Enjoy the information, but, for now, don't expect this level of detail
> about our future plans. Of course, we do want your feedback on
> features for the next release, and we'll be sharing more plans with
> you in the future, as we get closer to the next release.

> Sorry,
> Gordon
>         -----Original Message-----
>         From: [email protected]
>         [mailto:[EMAIL PROTECTED] On Behalf Of Gordon Smith
>         Sent: Tuesday, May 17, 2005 4:54 PM
>         To: '[email protected]'
>         Subject: [flexcoders] E4X in Flex 2.0, part 1: Reading XML
>        
>        
>         As you may have gathered, we've been spending a lot of time
>         lately leveraging the new features of the Flash Player in the
>         new Flex application model. Naturally, you'll also be able to
>         leverage those same new features, so we thought we'd start
>         giving you a run down of what's new. Of course we don't have
>         beta software for you to play with yet, so for now, we'll
>         provide a lot of detail so you can evaluate these new features
>         and give guidance for us.
>        
>         
>        
>         XML manipulation in Flex 2.0 is going to get a lot more
>         powerful, as well as faster. By the time that Flex 2.0 ships,
>         the Flash Player will support E4X ("ECMAScript for XML"), a
>         set of programming language extensions adding native XML
>         support to ECMAScript. The player team is busy implementing
>         Standard ECMA-357 as described in
>
http://www.ecma-international.org/publications/standards/Ecma-357.htm.
>        
>        
>         
>        
>        
>         Here's how the spec describes what this feature offers: "E4X
>         adds native XML datatypes to the ECMAScript language, extends
>         the semantics of familiar ECMAScript operators for
>         manipulating XML objects 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."
>        
>        
>         
>        
>        
>         Lets take a look at a few examples of how you can read XML
>         data using E4X.
>        
>        
>         
>        
>        
>         As in the current player, you'll be able to create variables
>         of type XML by parsing a String. But XML literals will now be
>         supported as well:
>        
>        
>         
>        
>        
>             var employees:XML =
>                 <employees>
>                     <employee ssn="123-123-1234">
>                         <name first="John" last="Doe"/>
>                         <address>
>                             <street>11 Main St.</street>
>                             <city>San Francisco</city>
>                             <state>CA</state>
>                             <zip>98765</zip>
>                         </address>
>                     </employee>
>                     <employee ssn="789-789-7890">
>                         <name first="Mary" last="Roe"/>
>                         <address>
>                             <street>99 Broad St.</street>
>                             <city>Newton</city>
>                             <state>MA</state>
>                             <zip>01234</zip>
>                         </address>
>                     </employee>
>                 </employees>;
>        
>        
>         
>        
>        
>         Instead of using DOM-style APIs like firstChild, nextSibling,
>         etc., with E4X you just "dot down" to grab the node you
>         want. Multiple nodes are indexable with [n], similar to the
>         elements of an Array:
>        
>        
>         
>        
>        
>             trace(employees.employee[0].address.zip);
>        
>        
>             ---
>        
>        
>             98765
>        
>        
>         
>        
>        
>         To grab an attribute, you just use the .@ operator:
>        
>        
>         
>        
>        
>             trace([EMAIL PROTECTED]);
>             ---
>        
>        
>             789-789-7890
>        
>        
>         
>        
>        
>         If you don't pick out a particular node, you get all of them,
>         as an indexable list:
>        
>        
>         
>        
>        
>             trace(employees.employee.name);
>        
>        
>             ---
>        
>        
>             <name first="John" last="Doe"/>
>        
>        
>             <name first="Mary" last="Roe"/>
>        
>        
>         
>        
>        
>         (And note that nodes even toString() themselves into formatted
>         XML!)
>        
>        
>         
>        
>        
>         A handy double-dot operator lets you omit the "path" down into
>         the XML _expression_, so you could shorten the previous three
>         examples to
>        
>        
>         
>        
>        
>             trace(employees..zip[0]);
>        
>        
>             trace([EMAIL PROTECTED]);
>        
>        
>             trace(employees..name);
>        
>        
>         
>        
>        
>         You can use a * wildcard to get a list of multiple nodes or
>         attributes with various names, and the resulting list is
>         indexable:
>        
>        
>         
>        
>        
>             trace(employees.employee[0].address.*);
>        
>        
>             ---
>        
>        
>             <street>11 Main St.</street>
>        
>        
>             <city>San Francisco</city>
>        
>        
>             <state>CA</state>
>        
>        
>             <zip>98765</zip>
>        
>        
>             trace([EMAIL PROTECTED]);
>             ---
>        
>        
>             Doe
>        
>        
>         
>        
>        
>         You don't have to hard-code the identifiers for the nodes or
>         attributes... they can themselves be variables:
>        
>        
>         
>        
>        
>             var whichNode:String = "zip";
>             trace(employees.employee[0].address[whichNode]);
>        
>             ---
>        
>        
>             98765
>        
>        
>         
>        
>        
>             var whichAttribute:String = "ssn";
>             trace([EMAIL PROTECTED]);
>             ---
>        
>        
>             789-789-7890
>        
>        
>         
>        
>        
>         A new for-each loop lets you loop over multiple nodes or
>         attributes:
>        
>        
>         
>        
>        
>             for each (var ssn:XML in [EMAIL PROTECTED])
>        
>        
>             {
>        
>        
>                 trace(ssn);
>        
>        
>             }
>        
>        
>             ---
>        
>        
>             123-123-1234
>             789-789-7890
>        
>        
>         
>        
>        
>         Most powerful of all, E4X supports "predicate filtering" using
>         the syntax .(condition), which lets you pick out nodes or
>         attributes that meet a condition you specify using a Boolean
>         _expression_. For example, you can pick out the employee with a
>         particular social security number like this, and get her
>         state:
>        
>        
>         
>        
>        
>             var ssnToFind:String = "789-789-7890";
>             trace(employees.employee.(@ssn == ssnToFind)..state);
>             ---
>        
>        
>             MA
>        
>        
>         
>        
>        
>         Instead of using a simple conditional operator like ==, you
>         can also write a complicated predicate filtering function to
>         pick out the data you need.
>        
>        
>         
>        
>        
>         By the way, although none of my examples use XML namespaces,
>         E4X has complete support for them.
>        
>        
>         
>        
>        
>         Compared with the current XML support in the Flash Player, E4X
>         allows you to write less code and execute it faster because
>         more processing can be done at the native speed of C++.
>        
>        
>         
>        
>        
>         Since E4X is so powerful, we're working to make Flex 2.0
>         play nicely with it. Components like List, ComboBox, and
>         DataGrid will be able to accept E4X expressions like
>         employees..name as a dataProvider. The <mx:XML> tag will be
>         able to declare an E4X-style XML object in MXML. WebService
>         and HTTPService will be able to deliver E4X-style XML objects
>         across the wire, and they'll use the speed of E4X to do their
>         own work (such as constructing and desconstrucing SOAP
>         packets) faster.
>        
>        
>         
>        
>        
>         For backward compability, the new player will continue to
>         support the old-style XML and XMLNode objects, with the one
>         change that the old XML class will be renamed to XMLDocument.
>         The renaming is necessary because the E4X standard specifies
>         that the new type be called XML. So if you have XML code and
>         you want to continue using, just use XMLDocument instead. But
>         we'll be encouraging everyone to migrate to E4X because it is
>         so much simpler, faster, and more expressive.
>        
>        
>         
>        
>        
>         Please let us know whether you'll find E4X useful in your
>         particular applications.
>        
>        
>         
>        
>        
>         - Gordon
>        
>        
>        
>         
>        
>        
>        
>         
>        
>        
>         
>        
>        
>        
>        
>         ______________________________________________________________
>         Yahoo! Groups Links
>               * To visit your group on the web, go to:
>                 http://groups.yahoo.com/group/flexcoders/
>                  
>               * To unsubscribe from this group, send an email to:
>                 [EMAIL PROTECTED]
>                  
>               * Your use of Yahoo! Groups is subject to the Yahoo!
>                 Terms of Service.
>        





Yahoo! Groups Links








Yahoo! Groups Links

Reply via email to