private void OnNamespaceDecl( NodeData attr ) {
     if ( !supportNamespaces ) {
         return;
     }
     string ns = attr.GetAtomizedValue( nameTable );
     if ( ns.Length == 0 ) {
         Throw( Res.Xml_BadNamespaceDecl, attr.lineInfo2.lineNo, attr.lineInfo2.linePos - 1 ); 
     }
     attr.SetValue( ns );
     AddNamespace( attr.localName, ns, attr );
 }
        private void OnDefaultNamespaceDecl( NodeData attr ) {
            if ( !supportNamespaces ) {
                return;
            }
            
            string ns = attr.GetAtomizedValue( nameTable );
            attr.SetValue( ns );
            attr.ns = nameTable.Add( XmlReservedNs.NsXmlNs );

            if ( !curNode.xmlContextPushed ) {
                PushXmlContext();
            }
            xmlContext.defaultNamespace = ns;

            AddNamespace( string.Empty, ns, attr );
        }