XmlSerializerNamespaces.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / Serialization / XmlSerializerNamespaces.cs / 1305376 / XmlSerializerNamespaces.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
//-----------------------------------------------------------------------------
 
namespace System.Xml.Serialization { 

    using System.Reflection; 
    using System.Collections;
    using System.IO;
    using System.Xml.Schema;
    using System; 

    ///  
    ///  
    ///    [To be supplied.]
    ///  
    public class XmlSerializerNamespaces {
        Hashtable namespaces = null;

        ///  
        /// 
        ///    [To be supplied.] 
        ///  
        public XmlSerializerNamespaces() {
        } 


        /// 
        ///  
        /// 
        ///    [To be supplied.] 
        ///  
        public XmlSerializerNamespaces(XmlSerializerNamespaces namespaces) {
            this.namespaces = (Hashtable)namespaces.Namespaces.Clone(); 
        }

        /// 
        ///  
        ///    [To be supplied.]
        ///  
        public XmlSerializerNamespaces(XmlQualifiedName[] namespaces) { 
            for (int i = 0; i < namespaces.Length; i++) {
                XmlQualifiedName qname = namespaces[i]; 
                Add(qname.Name, qname.Namespace);
            }
        }
 
        /// 
        ///  
        ///    [To be supplied.] 
        /// 
        public void Add(string prefix, string ns) { 
            // parameter value check
            if (prefix != null && prefix.Length > 0)
                XmlConvert.VerifyNCName(prefix);
 
            if (ns != null && ns.Length > 0)
                XmlConvert.ToUri(ns); 
            AddInternal(prefix, ns); 
        }
 
        internal void AddInternal(string prefix, string ns) {
            Namespaces[prefix] = ns;
        }
 
        /// 
        ///  
        ///    [To be supplied.] 
        /// 
        public XmlQualifiedName[] ToArray() { 
            if (NamespaceList == null)
                return new XmlQualifiedName[0];
            return (XmlQualifiedName[])NamespaceList.ToArray(typeof(XmlQualifiedName));
        } 

        ///  
        ///  
        ///    [To be supplied.]
        ///  
        public int Count {
            get { return Namespaces.Count; }
        }
 
        internal ArrayList NamespaceList {
            get { 
                if (namespaces == null || namespaces.Count == 0) 
                    return null;
                ArrayList namespaceList = new ArrayList(); 
                foreach(string key in Namespaces.Keys) {
                    namespaceList.Add(new XmlQualifiedName(key, (string)Namespaces[key]));
                }
                return namespaceList; 
            }
        } 
 
        internal Hashtable Namespaces {
            get { 
                if (namespaces == null)
                    namespaces = new Hashtable();
                return namespaces;
            } 
            set { namespaces = value; }
        } 
 
        internal string LookupPrefix(string ns) {
            if (string.IsNullOrEmpty(ns)) 
                return null;
            if (namespaces == null || namespaces.Count == 0)
                return null;
 
            foreach(string prefix in namespaces.Keys) {
                if (!string.IsNullOrEmpty(prefix) && (string)namespaces[prefix] == ns) { 
                    return prefix; 
                }
            } 
            return null;
        }
    }
} 


// File provided for Reference Use Only by Microsoft Corporation (c) 2007.


                        

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