XML: наследуют ли дочерние узлы префикс родительского пространства имен?

Предположим, что следующий XML-документ:

<root xmlns:foo="...">
  <foo:parent>
    <child/>
  </foo:parent>
</root>

Элемент child принадлежит пространству имен, которое соответствует префиксу foo? Как и в случае <foo:child/>?

Ответы

Ответ 1

Нет. Дочерние узлы по умолчанию не наследуют префиксное пространство имен, и явное добавление префикса, как вы упомянули: <foo:child/>.

Но они наследуют пространство имен по умолчанию для предков (одно без префикса), если оно есть:

<root xmlns:foo="...">
  <parent xmlns="bar">
    <child/>
  </parent>
</root>

<parent> и <child> узлы находятся в том же пространстве имен, что URI bar.