Microsoft XML 2.5 SDK


 

Namespace Scope

[This is preliminary documentation and subject to change.]

Namespace declarations are scoped using an element container. In the default declaration example, all unqualified elements (without explicit namespace on the element) within the "BOOK" element belong to the "urn:BookLovers.org:BookInfo" namespace. In the following example, notice that all unqualified elements within the "table" element are scoped to the default namespace "http://www.w3.org/TR/REC-html40". On the "details" tag, the default namespace is set to "urn:beerstuff.org:brandinfo". All unqualified tags within the "details" element are scoped to this namespace.

<Beers>
  <!-- the default namespace is now that of HTML -->
  <table xmlns="http://www.w3.org/TR/REC-html40">
    <tr><td>Name</td><td>Origin</td><td>Description</td></tr>
    <tr>
      <!-- drop the HTML namespace inside table cells -->
      <td><brandName xmlns="urn:beerstuff.org:brandinfo">Huntsman</brandName></td>
      <td><origin xmlns="urn:beerstuff.org:brandinfo">Bath, UK</origin></td>
      <td>
        <details xmlns="urn:beerstuff.org:brandinfo">
          <class>Bitter</class>
          <hop>Fuggles</hop>
          <pro>Wonderful hop, light alcohol, good summer beer</pro>
          <con>Fragile; excessive variance pub to pub</con>
        </details>
      </td>
    </tr>
  </table>
</Beers>

The following table shows the elements and attributes of the above XML example and their properties within the XML object model.

Node type nodeName namespaceURI prefix baseName
ELEMENT Beers     Beers
ELEMENT table http://www.w3.org/TR/REC-html40   table
ATTRIBUTE xmlns   xmlns  
ELEMENT tr http://www.w3.org/TR/REC-html40   tr
ELEMENT td http://www.w3.org/TR/REC-html40   td
ELEMENT td http://www.w3.org/TR/REC-html40   td
ELEMENT td http://www.w3.org/TR/REC-html40   td
ELEMENT tr http://www.w3.org/TR/REC-html40   tr
ELEMENT td http://www.w3.org/TR/REC-html40   td
ELEMENT brandName urn:beerstuff.org:brandinfo   brandName
ATTRIBUTE xmlns     xmlns
ELEMENT td http://www.w3.org/TR/REC-html40   td
ELEMENT origin urn:beerstuff.org:brandinfo   origin
ATTRIBUTE xmlns   xmlns  
ELEMENT td http://www.w3.org/TR/REC-html40   td
ELEMENT details urn:beerstuff.org:brandinfo   details
ATTRIBUTE xmlns   xmlns  
ELEMENT class urn:beerstuff.org:brandinfo   class
ELEMENT hop urn:beerstuff.org:brandinfo   hop
ELEMENT pro urn:beerstuff.org:brandinfo   pro
ELEMENT con urn:beerstuff.org:brandinfo   con

The namespace shorthands are valid within the element in which they are defined. In the explicit declaration example, the shorthands "bk" and "money" are valid only within the "bk:BOOK" element.