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

  1. //------------------------------------------------------------------------------
  2. // <copyright file="XmlSchemaInfo.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. using System.Xml;
  17. using System.Collections;
  18. namespace System.Xml.Schema
  19. {
  20.    
  21.     /// <include file='doc\IXmlSchemaInfo.uex' path='docs/doc[@for="IXmlSchemaInfo"]/*' />
  22.     public class XmlSchemaInfo : IXmlSchemaInfo
  23.     {
  24.         bool isDefault;
  25.         bool isNil;
  26.         XmlSchemaElement schemaElement;
  27.         XmlSchemaAttribute schemaAttribute;
  28.         XmlSchemaType schemaType;
  29.         XmlSchemaSimpleType memberType;
  30.         XmlSchemaValidity validity;
  31.         XmlSchemaContentType contentType;
  32.        
  33.         public XmlSchemaInfo()
  34.         {
  35.             Clear();
  36.         }
  37.        
  38.         internal XmlSchemaInfo(XmlSchemaValidity validity) : this()
  39.         {
  40.             this.validity = validity;
  41.         }
  42.        
  43.         public XmlSchemaValidity Validity {
  44.             get { return validity; }
  45.             set { validity = value; }
  46.         }
  47.        
  48.         public bool IsDefault {
  49.             get { return isDefault; }
  50.             set { isDefault = value; }
  51.         }
  52.        
  53.         public bool IsNil {
  54.             get { return isNil; }
  55.             set { isNil = value; }
  56.         }
  57.        
  58.         public XmlSchemaSimpleType MemberType {
  59.             get { return memberType; }
  60.             set { memberType = value; }
  61.         }
  62.        
  63.         public XmlSchemaType SchemaType {
  64.             get { return schemaType; }
  65.             set {
  66.                 schemaType = value;
  67.                 if (schemaType != null) {
  68.                     //Member type will not change its content type
  69.                     contentType = schemaType.SchemaContentType;
  70.                 }
  71.                 else {
  72.                     contentType = XmlSchemaContentType.Empty;
  73.                 }
  74.             }
  75.         }
  76.        
  77.         public XmlSchemaElement SchemaElement {
  78.             get { return schemaElement; }
  79.             set {
  80.                 schemaElement = value;
  81.                 if (value != null) {
  82.                     //Setting non-null SchemaElement means SchemaAttribute should be null
  83.                     schemaAttribute = null;
  84.                 }
  85.             }
  86.         }
  87.        
  88.         public XmlSchemaAttribute SchemaAttribute {
  89.             get { return schemaAttribute; }
  90.             set {
  91.                 schemaAttribute = value;
  92.                 if (value != null) {
  93.                     //Setting non-null SchemaAttribute means SchemaElement should be null
  94.                     schemaElement = null;
  95.                 }
  96.             }
  97.         }
  98.        
  99.         public XmlSchemaContentType ContentType {
  100.             get { return contentType; }
  101.             set { contentType = value; }
  102.         }
  103.        
  104.         internal XmlSchemaType XmlType {
  105.             get {
  106.                 if (memberType != null) {
  107.                     return memberType;
  108.                 }
  109.                 return schemaType;
  110.             }
  111.         }
  112.        
  113.         internal bool HasDefaultValue {
  114.             get { return schemaElement != null && schemaElement.ElementDecl.DefaultValueTyped != null; }
  115.         }
  116.        
  117.         internal bool IsUnionType {
  118.             get {
  119.                 if (schemaType == null || schemaType.Datatype == null) {
  120.                     return false;
  121.                 }
  122.                 return schemaType.Datatype.Variety == XmlSchemaDatatypeVariety.Union;
  123.             }
  124.         }
  125.        
  126.         internal void Clear()
  127.         {
  128.             isNil = false;
  129.             isDefault = false;
  130.             schemaType = null;
  131.             schemaElement = null;
  132.             schemaAttribute = null;
  133.             memberType = null;
  134.             validity = XmlSchemaValidity.NotKnown;
  135.             contentType = XmlSchemaContentType.Empty;
  136.         }
  137.     }
  138. }

Developer Fusion