built-in shelf
 #xmlns-names is a built in read-only string shelf displaying the currently active set
        of XML namespace/prefix mappings. The keys on the shelf are the element prefixes, and the values are the
        corresponding namespace names (URIs).
      
 While parsing the content of the following element 
  <a xmlns:omdoc="http://www.omnimark.com/docs/"
     xmlns:omtbl="http://www.omnimark.com/table.dtd">
 the shelf will contain 
          omdoc and value http://www.omnimark.com/docs/, and
            
omtbl and value http://www.omnimark.com/table.dtd/. 
          
A namespace name consisting of a zero length string indicates the absence of a namespace. Encountering this explicitly causes the prefix to be removed from the shelf if it already exists, or otherwise simply not added.
 When parsing the instance
          
  <a xmlns:foo="bar">
    <b xmlns:foo="">
            
 Immediately following the start tag for a, the #xmlns-names shelf has an
          entry with key foo and value bar. Inside element b, this shelf item is
          removed. After the end of element b (but still within element a) the shelf item will
          be restored. 
      
 The default namespace is represented by a shelf item with the empty string as the key.
<a xmlns="foo">
 The #xmlns-names shelf is saved before each start tag, and restored after each end tag. The shelf is
          saved and cleared at the start of each markup-parse.