SchemaNamespaceManager.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / Xml / System / Xml / schema / SchemaNamespaceManager.cs / 1 / SchemaNamespaceManager.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
//-----------------------------------------------------------------------------
 
namespace System.Xml.Schema { 
    using System;
    using System.Diagnostics; 
    using System.Collections;

    internal class SchemaNamespaceManager : XmlNamespaceManager {
        XmlSchemaObject node; 

        public SchemaNamespaceManager(XmlSchemaObject node) { 
            this.node = node; 
        }
 
        public override string LookupNamespace(string prefix) {
            if (prefix == "xml") { //Special case for the XML namespace
                return XmlReservedNs.NsXml;
            } 
            Hashtable namespaces;
            for (XmlSchemaObject current = node; current != null; current = current.Parent) { 
                namespaces = current.Namespaces.Namespaces; 
                if (namespaces != null && namespaces.Count > 0) {
                    object uri = namespaces[prefix]; 
                    if (uri != null)
                        return (string)uri;
                }
            } 
            return prefix.Length == 0 ? string.Empty : null;
        } 
 
        public override string LookupPrefix(string ns) {
            if (ns == XmlReservedNs.NsXml) { //Special case for the XML namespace 
                return "xml";
            }
            Hashtable namespaces;
            for (XmlSchemaObject current = node; current != null; current = current.Parent) { 
                namespaces = current.Namespaces.Namespaces;
                if (namespaces != null && namespaces.Count > 0) { 
                    foreach(DictionaryEntry entry in namespaces) { 
                        if (entry.Value.Equals(ns)) {
                            return (string)entry.Key; 
                        }
                    }
                }
            } 
            return null;
        } 
 
  }; //SchemaNamespaceManager
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK