HOW DO I JOIN THE FLEX.NET ALPHA/BETA TEST GROUP????????? J

 

 


From: flexcoders@yahoogroups.com [mailto:flexcoders@yahoogroups.com] On Behalf Of Scott Barnes
Sent: Wednesday, May 18, 2005 5:13 AM
To: flexcoders@yahoogroups.com
Subject: Re: [flexcoders] E4X in Flex 2.0, part 1: Reading XML

 

heheheheheheh thats funny.

I had to do a double take and thought "am i reading the right list here or..."

Nice work ;)


On 5/18/05, Hans Omli <[EMAIL PROTECTED]> wrote:

> I don't suppose we'll be reading part 2 of this email via FlexCoders then.
> ;-)

>  ________________________________
>  From: flexcoders@yahoogroups.com [mailto:flexcoders@yahoogroups.com] On
> Behalf Of Gordon Smith
> Sent: Tuesday, May 17, 2005 5:15 PM
> To: 'flexcoders@yahoogroups.com'
> Subject: RE: [flexcoders] E4X in Flex 2.0, part 1: Reading XML
>


> 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: flexcoders@yahoogroups.com [mailto:flexcoders@yahoogroups.com] On
> Behalf Of Gordon Smith
> Sent: Tuesday, May 17, 2005 4:54 PM
> To: 'flexcoders@yahoogroups.com'
> 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.


--
Regards,
Scott Barnes
http://www.mossyblog.com
http://www.flexcoder.com (Coming Soon)



Yahoo! Groups Links

Reply via email to