5 // Dwivedi, Ajay kumar Adwiv@Yahoo.com
\r
6 // Atsushi Enomoto atsushi@ximian.com
\r
10 using System.ComponentModel;
\r
11 using System.Xml.Serialization;
\r
12 #if NET_2_0_in_the_future
\r
13 using MS.Internal.Xml;
\r
16 namespace System.Xml.Schema
\r
19 /// Summary description for XmlSchemaType.
\r
21 public class XmlSchemaType : XmlSchemaAnnotated
\r
23 private XmlSchemaDerivationMethod final;
\r
24 private bool isMixed;
\r
25 private string name;
\r
28 internal XmlQualifiedName BaseSchemaTypeName;
\r
29 internal XmlSchemaType BaseXmlSchemaTypeInternal;
\r
30 internal XmlSchemaDatatype DatatypeInternal;
\r
31 internal XmlSchemaDerivationMethod resolvedDerivedBy;
\r
32 internal XmlSchemaDerivationMethod finalResolved;
\r
33 internal XmlQualifiedName QNameInternal;
\r
35 public XmlSchemaType ()
\r
37 final = XmlSchemaDerivationMethod.None;
\r
38 QNameInternal = XmlQualifiedName.Empty;
\r
42 [System.Xml.Serialization.XmlAttribute("name")]
\r
43 public string Name {
\r
45 set{ name = value; }
\r
48 [DefaultValue(XmlSchemaDerivationMethod.None)]
\r
49 [System.Xml.Serialization.XmlAttribute("final")]
\r
50 public XmlSchemaDerivationMethod Final {
\r
51 get{ return final; }
\r
52 set{ final = value; }
\r
56 #region Post Compilation Schema Information
\r
58 public XmlQualifiedName QualifiedName {
\r
59 get{ return QNameInternal; }
\r
63 public XmlSchemaDerivationMethod FinalResolved {
\r
64 get{ return finalResolved; }
\r
69 [Obsolete ("This property is going away. Use BaseXmlSchemaType instead")]
\r
71 public object BaseSchemaType {
\r
73 if (BaseXmlSchemaType != null)
\r
74 return BaseXmlSchemaType;
\r
75 else if (this == XmlSchemaComplexType.AnyType)
\r
76 return null; // This property is designed so.
\r
84 public XmlSchemaType BaseXmlSchemaType {
\r
86 internal XmlSchemaType BaseXmlSchemaType {
\r
88 get { return BaseXmlSchemaTypeInternal; }
\r
92 public XmlSchemaDerivationMethod DerivedBy {
\r
93 get{ return resolvedDerivedBy; }
\r
97 public XmlSchemaDatatype Datatype {
\r
98 get{ return DatatypeInternal; }
\r
102 public virtual bool IsMixed {
\r
103 get{ return isMixed; }
\r
104 set{ isMixed = value; }
\r
109 public static XmlSchemaComplexType GetBuiltInComplexType (XmlQualifiedName qualifiedName)
\r
111 internal static XmlSchemaComplexType GetBuiltInComplexType (XmlQualifiedName qualifiedName)
\r
114 if (qualifiedName == XmlSchemaComplexType.AnyType.QualifiedName)
\r
115 return XmlSchemaComplexType.AnyType;
\r
120 #if NET_2_0_in_the_future
\r
121 public static XmlSchemaSimpleType GetBuiltInSimpleType (XmlQualifiedName qualifiedName)
\r
123 if (qualifiedName.Name == "anySimpleType" && qualifiedName.Namespace == XmlSchema.Namespace)
\r
124 return XmlSchemaSimpleType.AnySimpleType;
\r
129 public virtual IXmlInfosetReader Validate (IXmlInfosetReader reader, object schemas)
\r
131 throw new NotImplementedException ();
\r
134 public virtual IXmlInfosetWriter Validate (IXmlInfosetWriter reader, object schemas)
\r
136 throw new NotImplementedException ();
\r
140 internal bool ValidateRecursionCheck ()
\r
143 return (this != XmlSchemaComplexType.AnyType);
\r
145 XmlSchemaType baseType = this.BaseXmlSchemaType as XmlSchemaType;
\r
146 bool result = false;
\r
147 if (baseType != null)
\r
148 result = baseType.ValidateRecursionCheck ();
\r