XML, пространства имен и E4X - PullRequest
       26

XML, пространства имен и E4X

3 голосов
/ 10 ноября 2011

Может кто-нибудь объяснить мне, для чего именно пространства имен (xmlns = "...") в XML и как они должны использоваться при навигации по XML с использованием E4X (предпочтительно в ActionScript 3)?

Я не могу полностью понять их назначение и использование.

Ответы [ 2 ]

1 голос
/ 10 ноября 2011

Многие люди указывают на объяснение Джеймса Кларка как на одно из самых ясных:

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

1 голос
/ 10 ноября 2011

Теоретически, пространства имен XML используются, чтобы избежать конфликта с именами тегов.Поэтому я могу создать пространство имен, содержащее тег с именем «mytag», а кто-то другой создаст другое пространство имен с таким же тегом «mytag», и конфликта не будет.Каждый тег «mytag» будет четко дифференцирован.

На практике я обнаружил, что пространства имен XML практически бесполезны (как часто у вас есть два разработчика, создающих тег для одного и того же файла XML?), И просто выполняете синтаксический анализдосадно сложно.

В EX4 вам нужно получить пространство имен, а затем префикс каждого тега с этим пространством имен.Так, например, если вы хотите получить доступ к тегу <somenamespace::somename>, вы напишите:

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

Если вы выполните поиск в Google, вы найдете несколько классов AS3, которые удаляют эти бесполезные пространства имен из XML, чтобы сделатьразбирать проще.

...