XmlMapping.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Xml / System / Xml / Serialization / XmlMapping.cs / 1 / XmlMapping.cs

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

    [Flags]
    public enum XmlMappingAccess { 
        None = 0x00,
        Read = 0x01, 
        Write = 0x02, 
    }
 
    /// 
    ///
    /// 
    ///    [To be supplied.] 
    /// 
    public abstract class XmlMapping { 
        TypeScope scope; 
        bool generateSerializer = false;
        bool isSoap; 
        ElementAccessor accessor;
        string key;
        bool shallow = false;
        XmlMappingAccess access; 

        internal XmlMapping(TypeScope scope, ElementAccessor accessor) : this(scope, accessor, XmlMappingAccess.Read | XmlMappingAccess.Write){ 
        } 

        internal XmlMapping(TypeScope scope, ElementAccessor accessor, XmlMappingAccess access) { 
            this.scope = scope;
            this.accessor = accessor;
            this.access = access;
            this.shallow = scope == null; 
        }
 
        internal ElementAccessor Accessor { 
            get { return accessor; }
        } 

        internal TypeScope Scope {
            get { return scope; }
        } 

        ///  
        ///  
        ///    [To be supplied.]
        ///  
        public string ElementName {
            get { return System.Xml.Serialization.Accessor.UnescapeName(Accessor.Name); }
        }
 
        /// 
        ///  
        ///    [To be supplied.] 
        /// 
        public string XsdElementName { 
            get { return Accessor.Name; }
        }

        ///  
        /// 
        ///    [To be supplied.] 
        ///  
        public string Namespace {
            get { return accessor.Namespace; } 
        }

        internal bool GenerateSerializer {
            get { return generateSerializer; } 
            set { generateSerializer = value; }
        } 
 
        internal bool IsReadable {
            get { return ((access & XmlMappingAccess.Read) != 0); } 
        }

        internal bool IsWriteable {
            get { return ((access & XmlMappingAccess.Write) != 0); } 
        }
 
        internal bool IsSoap { 
            get { return isSoap; }
            set { isSoap = value; } 
        }

        /// 
        /// 
        public void SetKey(string key){
            SetKeyInternal(key); 
        } 

        ///  
        ///
        internal void SetKeyInternal(string key){
            this.key = key;
        } 

        internal static string GenerateKey(Type type, XmlRootAttribute root, string ns) { 
            if (root == null) { 
                root = (XmlRootAttribute)XmlAttributes.GetAttr(type, typeof(XmlRootAttribute));
            } 
            return type.FullName + ":" + (root == null ? String.Empty : root.Key) + ":" + (ns == null ? String.Empty : ns);
        }

        internal string Key { get { return key; } } 
        internal void CheckShallow() {
            if (shallow) { 
                throw new InvalidOperationException(Res.GetString(Res.XmlMelformMapping)); 
            }
        } 
        internal static bool IsShallow(XmlMapping[] mappings) {
            for (int i = 0; i < mappings.Length; i++) {
                if (mappings[i] == null || mappings[i].shallow)
                    return true; 
            }
            return false; 
        } 
    }
} 

// 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