I went round and round with different ideas about how to deal with
these issues shortly after I started working with Flex. I even had
some issues using namespaceDeclarations() which, as Claus points out,
should work in retrieving them.

The solution I posted on my site was the best I was able to devise
because the 'use namespace' directive provided the most flexible way
to work with XML, but you can only define those types of namespaces
with compile-time constants. For instance, you can't do this:

namespace def = myXML.namespaceDeclarations()[0];
use namespace def;

If someone figures out an easier and/or more flexible way I am
definitely all ears though.

Ben


--- In flexcoders@yahoogroups.com, "Tom Lee" <[EMAIL PROTECTED]> wrote:
>
> I've been debating about whether it might not be worth it just to
strip out
> all the xmlns declarations with a little regex... I talked it over
briefly
> with the web service developers and they couldn't even really
explain why
> those are present or what they are for... Just that Visual Studio
puts them
> in by default.  I understand that they might prevent collisions between
> nodes of the same name, but in our case that's irrelevant since we
never use
> the same node name for multiple purposes.
> 
> Another idea I had would be to automagically loop through all the
nodes in
> the XML, find all the namespaces, and declare them... But frankly, I
don't
> know enough about the topic to understand the downsides of doing
something
> like that.  What do you think of the idea?
> 
> -----Original Message-----
> From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
> Behalf Of ben.clinkinbeard
> Sent: Wednesday, August 16, 2006 3:18 PM
> To: flexcoders@yahoogroups.com
> Subject: [flexcoders] Re: XML parser chokes on un-typed xmlns
> 
> Don't get me started on default namespaces in Flex/AS3... :)
> 
> --- In flexcoders@yahoogroups.com, "Tom Lee" <design@> wrote:
> >
> > Awesome!  That's got it!  Thanks so much.  Seems odd that we have to
> > manually declare these namespaces just to parse a little XML,
> doesn't it?
> > 
> > -----Original Message-----
> > From: flexcoders@yahoogroups.com
[mailto:[EMAIL PROTECTED] On
> > Behalf Of ben.clinkinbeard
> > Sent: Wednesday, August 16, 2006 2:31 PM
> > To: flexcoders@yahoogroups.com
> > Subject: [flexcoders] Re: XML parser chokes on un-typed xmlns
> > 
> > Hi Tom,
> > 
> > Sorry, I've not used the descendants method before and I just assumed
> > the approach I use would work. If you use .. instead it will work as
> > expected.
> > 
> > namespace temp = "http://tempuri.org/";;
> > use namespace temp;
> > trace("Node B from myXML2: " + myXML2..b);
> > 
> > HTH,
> > Ben
> > 
> > 
> > --- In flexcoders@yahoogroups.com, "Tom Lee" <design@> wrote:
> > >
> > > Thanks, Ben - I've seen this before (I believe you directed me to
> > this page
> > > on a previous issue).  However, I don't understand how it applies
> to my
> > > particular problem - how would you fix my example using the
namespace
> > > directive?
> > > 
> > > -----Original Message-----
> > > From: flexcoders@yahoogroups.com
> [mailto:[EMAIL PROTECTED] On
> > > Behalf Of ben.clinkinbeard
> > > Sent: Wednesday, August 16, 2006 12:46 PM
> > > To: flexcoders@yahoogroups.com
> > > Subject: [flexcoders] Re: XML parser chokes on un-typed xmlns
> > > 
> > >
> >
>
http://www.returnundefined.com/2006/07/dealing-with-default-namespaces-in-fl
> > > ex-2as3/
> > > 
> > > Ben
> > > http://www.returnundefined.com/
> > > 
> > > --- In flexcoders@yahoogroups.com, "Tom Lee" <design@> wrote:
> > > >
> > > > Hi everyone,
> > > > 
> > > >  
> > > > 
> > > > I am having some difficulty parsing .Net web service results.  The
> > > problem
> > > > lies in the fact that Flex's XML parser doesn't like un-typed
xmlns
> > > > declarations of the type found by default in .Net web services. 
> > Try the
> > > > following:
> > > > 
> > > >  
> > > > 
> > > >  
> > > > 
> > > > <?xml version="1.0" encoding="utf-8"?>
> > > > 
> > > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
> > > layout="absolute"
> > > > creationComplete="doIt()">
> > > > 
> > > >             <mx:Script>
> > > > 
> > > >                         <![CDATA[
> > > > 
> > > >                                     function doIt(){
> > > > 
> > > >                                                 var myXML:XML =
> > > > <soap:Envelope
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
> > > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> > > > xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
> > > > 
> > > >  
> > > > <soap:Body>
> > > > 
> > > >  
> > > > <a xmlns:soap="http://tempuri.org/ ">
> > > > 
> > > >  
> > > > <b>Hi</b>
> > > > 
> > > >  
> > > > </a>
> > > > 
> > > >  
> > > > </soap:Body>
> > > > 
> > > >  
> > > > </soap:Envelope>
> > > > 
> > > >                                                 trace("Node B from
> > > myXML:
> > > > "+myXML.descendants("b"));
> > > > 
> > > >                                                 
> > > > 
> > > >                                                 var myXML2:XML =
> > > > <soap:Envelope
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
> > > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> > > > xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
> > > > 
> > > >  
> > > > <soap:Body>
> > > > 
> > > >  
> > > > <a xmlns="http://tempuri.org/ ">
> > > > 
> > > >  
> > > > <b>Hi</b>
> > > > 
> > > >  
> > > > </a>
> > > > 
> > > >  
> > > > </soap:Body>
> > > > 
> > > >  
> > > > </soap:Envelope>
> > > > 
> > > >                                                 trace("Node B from
> > > myXML2:
> > > > "+myXML2.descendants("b"));
> > > > 
> > > >                                     }
> > > > 
> > > >                         ]]>
> > > > 
> > > >             </mx:Script>
> > > > 
> > > > </mx:Application>
> > > > 
> > > >  
> > > > 
> > > >  
> > > > 
> > > >  
> > > > 
> > > > This code results in the following traces:
> > > > 
> > > >  
> > > > 
> > > > Node B from myXML: Hi
> > > > 
> > > > Node B from myXML2:
> > > > 
> > > >  
> > > > 
> > > > As you can see, the only difference between the two blocks of
XML is
> > > that
> > > > the successful one uses "xmlns:soap=" while the unsuccessful one
> uses
> > > > "xmlns=".  While I am no SOAP expert, I don't believe the 2nd
one is
> > > invalid
> > > > syntax, so there should be no reason for the XML parser to ignore
> > > it, right?
> > > > 
> > > >  
> > > > 
> > > > Anyone have a workaround for me that doesn't require modifying
> the web
> > > > services? (I don't have administrative access to them).
> > > > 
> > > >  
> > > > 
> > > > Thanks!
> > > > 
> > > >  
> > > > 
> > > > -tom
> > > >
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > --
> > > Flexcoders Mailing List
> > > FAQ:
http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> > > Search Archives:
> > http://www.mail-archive.com/flexcoders%40yahoogroups.com 
> > > Yahoo! Groups Links
> > >
> > 
> > 
> > 
> > 
> > 
> > 
> > --
> > Flexcoders Mailing List
> > FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> > Search Archives:
> http://www.mail-archive.com/flexcoders%40yahoogroups.com 
> > Yahoo! Groups Links
> >
> 
> 
> 
> 
> 
> 
> 
> --
> Flexcoders Mailing List
> FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> Search Archives:
http://www.mail-archive.com/flexcoders%40yahoogroups.com 
> Yahoo! Groups Links
>







--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 
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/
 



Reply via email to