Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

XML, namespaces and E4X

Can someone explain me what exactly namespaces (xmlns="...") in XML are for and how they have to be used in navigating an XML using E4X (..preferrably in ActionScript 3)?

I fail to fully understand their purpose and usage.

like image 333
Mat Avatar asked Dec 27 '25 14:12

Mat


2 Answers

In theory, XML namespaces are used to avoid conflict with tag names. So I can create a namespace that contains a tag named "mytag" and someone else creates a different namespace with the same tag "mytag" and there won't be any conflict. Each "mytag" tag will be clearly differentiated.

In practice, I found that XML namespaces are pretty much useless (how often do you have two developers creating tag for the same XML file?) and just make the parsing annoyingly difficult.

In EX4, you'll need to get the namespace, then prefix each tag with that namespace. So, for example, if you want to access the tag <somenamespace::somename> you will write:

var somenamespace:Namespace = xml.namespace("somenamespace");
var sometag:XML = somenamespace::somename[0];

If you search on Google, you'll find some AS3 classes that remove these useless namespaces from XML to make parsing easier.

like image 101
laurent Avatar answered Dec 31 '25 18:12

laurent


Many people point to James Clark's explanation as one of the clearest:

http://www.jclark.com/xml/xmlns.htm

like image 23
Michael Kay Avatar answered Dec 31 '25 17:12

Michael Kay



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!