I'd assume your companies objects' members exactly match the nodes in the xml ?
so if your xml has a node called "name" you have a property on your companies object called 'name' ? Grant. ----- Original Message ----- From: brent_trx [EMAIL PROTECTED] To: [email protected] Sent: 1/31/07 4:44 PM Subject: [flexcoders] Re: Flex 2 HTTPService best practices > Here's a snippet from my XMLUtils class that converts an XML list of > "companies" to an ArrayCollection of Company objects (relies on Darron > Schall's ObjectTranslator tools for convenience): > > /****************************************************** > * Convert from XML List to Company ArrayCollection > ******************************************************/ > public static function > companiesXMLDecoder(xml:XMLDocument):ArrayCollection { > var companyCollection:ArrayCollection = new ArrayCollection(); > var xmlDecoder:SimpleXMLDecoder = new SimpleXMLDecoder(); > > if (xml.firstChild.childNodes.length > 0) { > var objectTree:Object = xmlDecoder.decodeXML(xml.firstChild); > var companies:Array; > > if (objectTree.company is Array) companies = objectTree.company; > else companies = new Array(objectTree.company); > > for (var i:int=0; i < companies.length; i++) { > var company:Company = > ObjectTranslator.objectToInstance(companies[i], Company) as Company; > companyCollection.addItem(company); > } > } > return companyCollection; > } > > > ----- and now the HTTPService definition ---- > > > > > > > ... the event.result received by getCompaniesResultHandler will be an > ArrayCollection of Company objects. =] > > > > > --- In [email protected], "[EMAIL PROTECTED]" wrote: > > > > I'd love to see an example, we were about to parse the XML and create > our own array objects with the correct types for binding but this sounds > like a much cleaner method. > > > > Cheers, > > Grant > > > > ----- Original Message ----- > > From: brent_trx [EMAIL PROTECTED] > > To: [email protected] > > Sent: 1/31/07 4:27 PM > > Subject: [flexcoders] Re: Flex 2 HTTPService best practices > > > > > I was facing a very similar issue just recently. I had all these AS > > > model classes that mapped identical properties in accordance to the > > > backend objects I was dealing with, but no FDS-style convenience > > > mechanism to handle typing via HTTPService calls. What I found out > is > > > the beauty of the "xmlDecode" and "xmlEncode" methods. > > > > > > When you use the xmlDecode method, passing it a function reference, > > > that function will expect an XMLDocument object that is generated > > > automatically by the service. You can then take that XMLDocument, > > > iterate through it, building and returning objects of whatever type > > > you desire. When you access "event.result" in your handler function, > > > that property value will be typed based on your decoder return type. > > > So "event.result" is now, say a User object, rather than a user xml > > > node representation. > > > > > > The beauty of this strategy is, at any point, your transport > mechanism > > > becomes disposable. If you suddenly decide to switch from XML to > JSON > > > as your transport mechanism of choice, you only need to code some > > > decoder / encoder functions, and you're done. No need to change > what, > > > say, a datagrid expects. Very elegant architecture. > > > > > > I recommend taking a look at AS3's SimpleXMLDecoder class, along > with > > > Darron Schall's ObjectTranslator class, which makes writing an XML > > > decoder a breeze. > > > > > > If anyone is interested, I can post a sample.

