Я использую документы XML DOM с двумя пространствами имен. Например, рассмотрим следующий документ:
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:libx="http://libx.org/xml/libx2">
<id>5</id>
<title>Put Google Book results into Addison</title>
<updated>2009-02-23T10:12:15Z</updated>
<author>
<name>LibX Team</name>
<uri>http://libx.org</uri>
<email>libx.org@gmail.com</email>
</author>
<libx:libapp>
<libx:entry xmlns:libx="http://libx.org/xml/libx2" src="6"/>
<libx:entry xmlns:libx="http://libx.org/xml/libx2" src="7"/>
</libx:libapp>
</entry>
У меня есть следующие сомнения относительно пространств имен:
1) Если я не добавлю префикс пространства имен к узлам (id, title, author и т. Д.), Как в приведенном выше примере, им будет присвоено пространство имен по умолчанию: "http://www.w3.org/2005/Atom"? Если нет, какому пространству имен они будут назначены?
2) Метод getNameSpaceURI узла возвращает - URI пространства имен узла или ноль, если он не указан. Но как мне узнать пространство имен узла, если оно не указано? Имеется в виду, есть ли способ узнать, назначено ли пространство имен по умолчанию узлу или назначено какое-то другое пространство имен?
3) Когда я скопирую узлы (с пространствами имен по умолчанию) конкретного документа в другой документ, сохранят ли узлы исходные пространства имен или они займут пространство имен по умолчанию нового документа, в который эти узлы копируются? Если последнее верно, как мне сохранить исходные пространства имен?
Наконец, кто-то может указать мне хороший онлайн-материал для лучшего понимания этих конфликтующих проблем с пространством имен?
Спасибо,
Sidhartha