Development time on my current project would be reduced considerably (as much as half) if I had access to this type of functionality.
The $64M question...WHEN WILL FLEX 2.0 BE AVAILABLE - EVEN IN A BETA FORMAT????? Thanks, -Dave --- In flexcoders@yahoogroups.com, "Jeff Steiner" <[EMAIL PROTECTED]> wrote: > That is flat out increadible. > > I can't wait! > > Jeff > http://www.flexauthority.com > > ----- Original Message ----- > From: "Jeff Beeman" <[EMAIL PROTECTED]> > To: <flexcoders@yahoogroups.com> > Sent: Tuesday, May 17, 2005 5:04 PM > Subject: RE: [flexcoders] E4X in Flex 2.0, part 1: Reading XML > > > This is very exciting! I'm especially excited about the double- dot and > wildcard operators. Thanks for this update, as it'll help with planning > for future projects. Keep 'em coming! > > > > > > /****************************************** > * Jeff Beeman > ******************************************/ > > _____ > > From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] 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] <mailto:[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] <mailto:[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] > <mailto:[EMAIL PROTECTED] subject=Unsubscribe> > > * Your use of Yahoo! Groups is subject to the Yahoo! Terms of > Service <http://docs.yahoo.com/info/terms/> . 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: http://docs.yahoo.com/info/terms/