名稱空間繫結的範圍

名稱空間繫結(特殊 xmlnsxmlns:... 屬性)適用於封閉元素的所有後代,包括此元素。

<?xml version="1.0"?>
<root>
  <my:element xmlns:my="http://www.example.com/ns1">
    <!-- here, the prefix my is bound to http://www.example.com/ns1 -->
  </my:element>
  <my:element xmlns:my="http://www.example.com/ns2">
    <!-- here, the prefix my is bound to http://www.example.com/ns2 -->
  </my:element>
</root>

可以在巢狀元素中覆蓋繫結(這會影響可讀性):

<?xml version="1.0"?>
<my:element xmlns:my="http://www.example.com/ns1">
  <!-- here, the prefix my is bound to http://www.example.com/ns1 -->
  <my:first-child-element/>

  <my:child-element xmlns:my="http://www.example.com/ns2">
    <!-- here, the prefix my is bound to http://www.example.com/ns2,
         including for the element my:child-element -->
  </my:child-element>

  <!-- here, the prefix my is bound to http://www.example.com/ns1 -->
  <my:last-child-element/>

</my:element>

在根元素中宣告所有名稱空間繫結是很常見的,這提高了可讀性。

<?xml version="1.0"?>
<root
  xmlns="http://www.example.com/default-namespace"
  xmlns:ns1="http://www.example.com/ns1"
  xmlns:ns2="http://www.example.com/ns2">
  
  <ns1:element>
    <ns2:other-element/>
  </ns1:element>

</root>