Я использую документы 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>[email protected]</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) Если я не добавлю префикс пространства имен к узлам (идентификатор, заголовок, автор и т. д.), как в приведенном выше примере, им будет назначено пространство имен по умолчанию: «http://www.w3.org/2005/Atom" ? Если нет, то к какому пространству имен они будут привязаны?
2) Метод getNameSpaceURI узла возвращает - URI пространства имен узла или ноль, если он не указан. Но как мне узнать пространство имен узла, если оно не указано. Имеется в виду, есть ли способ узнать, назначено ли узлу пространство имен по умолчанию или назначено какое-то другое пространство имен?
3) Когда я копирую узлы (с пространствами имен по умолчанию) определенного документа в другой документ, сохранят ли узлы исходные пространства имен или они займут пространство имен по умолчанию нового документа, в который эти узлы скопированы? Если последнее верно, как мне сохранить исходные пространства имен?
Наконец, может ли кто-нибудь указать мне на хороший онлайн-материал, чтобы лучше понять эти конфликтующие проблемы с пространством имен?
Спасибо, Сидхартха