SchemaDeclBase.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 / schema / SchemaDeclBase.cs / 1305376 / SchemaDeclBase.cs

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

    using System.Collections.Generic; 
    using System.Diagnostics;

    internal abstract class SchemaDeclBase {
        internal enum Use { 
            Default,
            Required, 
            Implied, 
            Fixed,
            RequiredFixed 
        };

        protected XmlQualifiedName  name = XmlQualifiedName.Empty;
        protected string            prefix; 
        protected bool isDeclaredInExternal = false;
        protected Use               presence;     // the presence, such as fixed, implied, etc 
 
#if !SILVERLIGHT
        protected XmlSchemaType     schemaType; 
        protected XmlSchemaDatatype datatype;

        protected string            defaultValueRaw;       // default value in its original form
        protected object            defaultValueTyped; 

        protected long               maxLength; // dt:maxLength 
        protected long               minLength; // dt:minLength 

        protected List values;    // array of values for enumerated and notation types 
#endif

        protected SchemaDeclBase(XmlQualifiedName name, string prefix) {
            this.name = name; 
            this.prefix = prefix;
#if !SILVERLIGHT 
            maxLength = -1; 
            minLength = -1;
#endif 
        }

#if !SILVERLIGHT
        protected SchemaDeclBase() { 
        }
#endif 
 
        internal XmlQualifiedName Name {
            get { return name;} 
            set { name = value;}
        }

        internal string Prefix { 
            get { return(prefix == null) ? string.Empty : prefix;}
            set { prefix = value;} 
        } 

        internal bool IsDeclaredInExternal { 
            get { return isDeclaredInExternal;}
            set { isDeclaredInExternal = value;}
        }
 
        internal Use Presence {
            get { return presence; } 
            set { presence = value; } 
        }
 
#if !SILVERLIGHT
        internal long MaxLength {
            get { return maxLength;}
            set { maxLength = value;} 
        }
 
        internal long MinLength { 
            get { return minLength;}
            set { minLength = value;} 
        }

        internal XmlSchemaType SchemaType {
            get { return schemaType;} 
            set { schemaType = value;}
        } 
 
        internal XmlSchemaDatatype Datatype {
            get { return datatype;} 
            set { datatype = value;}
        }

        internal void AddValue(string value) { 
            if (values == null) {
                values = new List(); 
            } 
            values.Add(value);
        } 

        internal List Values {
            get { return values; }
            set { values = value; } 
        }
 
        internal string DefaultValueRaw { 
            get { return(defaultValueRaw != null) ? defaultValueRaw : string.Empty;}
            set { defaultValueRaw = value;} 
        }

        internal object DefaultValueTyped {
            get { return defaultValueTyped;} 
            set { defaultValueTyped = value;}
        } 
 
        internal bool CheckEnumeration(object pVal) {
            return (datatype.TokenizedType != XmlTokenizedType.NOTATION && datatype.TokenizedType != XmlTokenizedType.ENUMERATION) || values.Contains(pVal.ToString()); 
        }

        internal bool CheckValue(Object pVal) {
            return (presence != Use.Fixed && presence != Use.RequiredFixed) || (defaultValueTyped != null && datatype.IsEqual(pVal, defaultValueTyped)); 
        }
#endif 
    }; 

} 

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