The Labs \ Source Viewer \ SSCLI \ System.Xml.Schema \ Use

  1. //------------------------------------------------------------------------------
  2. // <copyright file="SchemaDeclBase.cs" company="Microsoft">
  3. //
  4. // Copyright (c) 2006 Microsoft Corporation. All rights reserved.
  5. //
  6. // The use and distribution terms for this software are contained in the file
  7. // named license.txt, which can be found in the root of this distribution.
  8. // By using this software in any fashion, you are agreeing to be bound by the
  9. // terms of this license.
  10. //
  11. // You must not remove this notice, or any other, from this software.
  12. //
  13. // </copyright>
  14. // <owner current="true" primary="true">priyal</owner>
  15. //------------------------------------------------------------------------------
  16. namespace System.Xml.Schema
  17. {
  18.    
  19.     using System.Collections;
  20.     using System.Diagnostics;
  21.    
  22.     internal abstract class SchemaDeclBase
  23.     {
  24.         public enum Use
  25.         {
  26.             Default,
  27.             Required,
  28.             Implied,
  29.             Fixed,
  30.             RequiredFixed
  31.         }
  32.        
  33.         protected XmlQualifiedName name = XmlQualifiedName.Empty;
  34.         protected string prefix;
  35.         protected ArrayList values;
  36.         // array of values for enumerated and notation types
  37.         protected XmlSchemaType schemaType;
  38.         protected XmlSchemaDatatype datatype;
  39.         protected bool isDeclaredInExternal = false;
  40.         protected Use presence;
  41.         // the presence, such as fixed, implied, etc
  42.         protected string defaultValueRaw;
  43.         // default value in its original form
  44.         protected object defaultValueTyped;
  45.        
  46.         protected long maxLength;
  47.         // dt:maxLength
  48.         protected long minLength;
  49.         // dt:minLength
  50.        
  51.         protected SchemaDeclBase(XmlQualifiedName name, string prefix)
  52.         {
  53.             this.name = name;
  54.             this.prefix = prefix;
  55.             maxLength = -1;
  56.             minLength = -1;
  57.         }
  58.        
  59.         protected SchemaDeclBase()
  60.         {
  61.         }
  62.        
  63.         public XmlQualifiedName Name {
  64.             get { return name; }
  65.             set { name = value; }
  66.         }
  67.        
  68.         public string Prefix {
  69.             get { return (prefix == null) ? string.Empty : prefix; }
  70.             set { prefix = value; }
  71.         }
  72.        
  73.         public void AddValue(string value)
  74.         {
  75.             if (values == null) {
  76.                 values = new ArrayList();
  77.             }
  78.             values.Add(value);
  79.         }
  80.        
  81.         public ArrayList Values {
  82.             get { return values; }
  83.             set { values = value; }
  84.         }
  85.        
  86.         public Use Presence {
  87.             get { return presence; }
  88.             set { presence = value; }
  89.         }
  90.        
  91.         public long MaxLength {
  92.             get { return maxLength; }
  93.             set { maxLength = value; }
  94.         }
  95.        
  96.         public long MinLength {
  97.             get { return minLength; }
  98.             set { minLength = value; }
  99.         }
  100.        
  101.         public bool IsDeclaredInExternal {
  102.             get { return isDeclaredInExternal; }
  103.             set { isDeclaredInExternal = value; }
  104.         }
  105.        
  106.         public XmlSchemaType SchemaType {
  107.             get { return schemaType; }
  108.             set { schemaType = value; }
  109.         }
  110.        
  111.         public XmlSchemaDatatype Datatype {
  112.             get { return datatype; }
  113.             set { datatype = value; }
  114.         }
  115.        
  116.         public string DefaultValueRaw {
  117.             get { return (defaultValueRaw != null) ? defaultValueRaw : string.Empty; }
  118.             set { defaultValueRaw = value; }
  119.         }
  120.        
  121.         public object DefaultValueTyped {
  122.             get { return defaultValueTyped; }
  123.             set { defaultValueTyped = value; }
  124.         }
  125.        
  126.         public bool CheckEnumeration(object pVal)
  127.         {
  128.             return (datatype.TokenizedType != XmlTokenizedType.NOTATION && datatype.TokenizedType != XmlTokenizedType.ENUMERATION) || values.Contains(pVal.ToString());
  129.         }
  130.        
  131.         public bool CheckValue(object pVal)
  132.         {
  133.             return (presence != Use.Fixed && presence != Use.RequiredFixed) || (defaultValueTyped != null && datatype.IsEqual(pVal, defaultValueTyped));
  134.         }
  135.        
  136.     }
  137.    
  138. }

Developer Fusion