RE: [flexcoders] E4X in Flex 2.0, part 1: Reading XML

2005-05-18 Thread Tolulope Olonade










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

street11 Main St./street

citySan Francisco/city

stateCA/state

zip98765/zip

/address

/employee

employee ssn=789-789-7890

name first=Mary last=Roe/

address

street99 Broad St./street

cityNewton/city

stateMA/state

zip01234/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.*); 
 
 
 --- 
 
 
 street11 Main St./street

 
 
 citySan Francisco/city

 
 

stateCA/state 
 
 

zip98765/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

Re: [flexcoders] E4X in Flex 2.0, part 1: Reading XML

2005-05-18 Thread Scott Barnes
You have to know the secret handshake, aswell as perform a series of
trials ..i call them rights of flex-passage :)

heh, umm i think they aren't even at the stage of Alpha yet, let alone
any secret squiirel groups.

:)

... or are they...hrmm! ;)

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


 
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/
 




RE: [flexcoders] E4X in Flex 2.0, part 1: Reading XML

2005-05-18 Thread Matt Chotin










There is nothing active in our Flex.NET
forums right now so dont worry about it J











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





You have to know the secret handshake, aswell as perform a series of
trials ..i call them rights of flex-passage :)

heh, umm i think they aren't even at the stage of
Alpha yet, let alone
any secret squiirel groups.

:)

... or are they...hrmm! ;)

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












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.












RE: [flexcoders] E4X in Flex 2.0, part 1: Reading XML

2005-05-17 Thread Jeff Beeman
Title: Message










This is very exciting! Im
especially excited about the double-dot and wildcard operators. Thanks for
this update, as itll 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'show the spec describes whatthis 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

street11 Main St./street

citySan Francisco/city

stateCA/state

zip98765/zip

/address

/employee
 employee
ssn=789-789-7890

name first=Mary last=Roe/

address

street99 Broad St./street

cityNewton/city

stateMA/state

zip01234/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











Tograb 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 nodeseven 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 toget a list of multiple
nodes or attributes with various names, and the resulting list is indexable:















 trace(employees.employee[0].address.*);





 ---





 street11 Main St./street





 citySan Francisco/city





 stateCA/state





 zip98765/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











Anew 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, andget 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 ofmy examples use XML
namespaces, E4X has complete support for them.












RE: [flexcoders] E4X in Flex 2.0, part 1: Reading XML

2005-05-17 Thread James Ward
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: 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
 street11 Main St./street
 citySan Francisco/city
 stateCA/state
 zip98765/zip
 /address
 /employee
 employee ssn=789-789-7890
 name first=Mary last=Roe/
 address
 street99 Broad St./street
 cityNewton/city
 stateMA/state
 zip01234/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/
 
 
  
 
 

RE: [flexcoders] E4X in Flex 2.0, part 1: Reading XML

2005-05-17 Thread Gordon Smith
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: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of James Ward
Sent: Tuesday, May 17, 2005 5:24 PM
To: flexcoders@yahoogroups.com
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: 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
 street11 Main St./street
 citySan Francisco/city
 stateCA/state
 zip98765/zip
 /address
 /employee
 employee ssn=789-789-7890
 name first=Mary last=Roe/
 address
 street99 Broad St./street
 cityNewton/city
 stateMA/state
 zip01234/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

RE: [flexcoders] E4X in Flex 2.0, part 1: Reading XML

2005-05-17 Thread Hans Omli
Title: Message





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


From: flexcoders@yahoogroups.com 
[mailto:[EMAIL PROTECTED] On Behalf Of Gordon 
SmithSent: Tuesday, May 17, 2005 5:15 PMTo: 
'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:[EMAIL PROTECTED] On Behalf Of 
  Gordon SmithSent: Tuesday, May 17, 2005 4:54 PMTo: 
  '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'show the spec describes 
  whatthis 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 
  street11 Main 
  St./street 
  citySan 
  Francisco/city 
  stateCA/state 
  zip98765/zip 
  /address 
  /employee 
  employee 
  ssn="789-789-7890" 
  name first="Mary" 
  last="Roe"/ 
  address 
  street99 Broad 
  St./street 
  cityNewton/city 
  stateMA/state 
  zip01234/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
  
  
  
  Tograb 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 nodeseven 
  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 
  toget a list of multiple nodes or attributes with various names, and the 
  resulting list is indexable:
  
  
  
   
  trace(employees.employee[0].address.*);
  
   
  ---
  
   
  street11 Main St./street
  
   
  citySan Francisco/city
  
   
  stateCA/state
  
   
  zip98765/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
  
  
  
  Anew for-each loop lets you 
  loop over multiple nodes or attributes:
  
  
  
   fo

Re: [flexcoders] E4X in Flex 2.0, part 1: Reading XML

2005-05-17 Thread Jeff Steiner
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
street11 Main St./street
citySan Francisco/city
stateCA/state
zip98765/zip
/address
/employee
employee ssn=789-789-7890
name first=Mary last=Roe/
address
street99 Broad St./street
cityNewton/city
stateMA/state
zip01234/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.*);

---

street11 Main St./street

citySan Francisco/city

stateCA/state

zip98765/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

Re: [flexcoders] E4X in Flex 2.0, part 1: Reading XML

2005-05-17 Thread Scott Barnes
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:[EMAIL PROTECTED] 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:[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
 street11 Main St./street
 citySan Francisco/city
 stateCA/state
 zip98765/zip
 /address
 /employee
 employee ssn=789-789-7890
 name first=Mary last=Roe/
 address
 street99 Broad St./street
 cityNewton/city
 stateMA/state
 zip01234/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.*); 
  
 
 --- 
  
 
 street11 Main St./street 
  
 
 citySan Francisco/city 
  
 
 stateCA/state 
  
 
 zip98765/zip 
  
 
 trace([EMAIL PROTECTED]);
 --- 
  
 
 Doe 
  
 
   
  
 
 You don't have to hard-code the identifiers for the nodes or attributes...
 they can themselves be variables