web-dev-qa-db-ja.com

XML:子ノードは親の名前空間プレフィックスを継承しますか?

次のXMLドキュメントを想定します。

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

child要素は、プレフィックスfooに対応する名前空間に属しますか?場合と同じように<foo:child/>

26

いいえ。子ノードしないデフォルトでプレフィックス付き名前空間を継承し、前述のように明示的なプレフィックス追加が必要です:<foo:child/>

しかし、それらはdo祖先のデフォルトの名前空間(プレフィックスのない名前空間)を継承します(存在する場合):

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

<parent>および<child>ノードは、URIがbarである同じ名前空間にあります。

28
har07