| File: FrameworkFork\Microsoft.Xml\Xml\schema\SchemaDeclBase.cs | Web Access |
| Project: src\src\dotnet-svcutil\lib\src\dotnet-svcutil-lib.csproj (dotnet-svcutil-lib) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. namespace Microsoft.Xml.Schema { using System; using Microsoft.Xml; 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 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<string> values; // array of values for enumerated and notation types protected SchemaDeclBase(XmlQualifiedName name, string prefix) { this.name = name; this.prefix = prefix; maxLength = -1; minLength = -1; } protected SchemaDeclBase() { } 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; } } 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<string>(); } values.Add(value); } internal List<string> 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)); } }; }