XmlSchemaObject Class
Represents the root class for the Xml schema object model hierarchy and serves as a base class for classes such as the XmlSchema class.
Assembly: System.Xml (in System.Xml.dll)
| Name | Description | |
|---|---|---|
![]() | XmlSchemaObject() | Initializes a new instance of the XmlSchemaObject class. |
| Name | Description | |
|---|---|---|
![]() | LineNumber | Gets or sets the line number in the file to which the schema element refers. |
![]() | LinePosition | Gets or sets the line position in the file to which the schema element refers. |
![]() | Namespaces | Gets or sets the XmlSerializerNamespaces to use with this schema object. |
![]() | Parent | Gets or sets the parent of this XmlSchemaObject. |
![]() | SourceUri | Gets or sets the source location for the file that loaded the schema. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | MemberwiseClone() | |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
The following example displays each schema object.
using System; using System.Xml; using System.Xml.Schema; using System.IO; using System.Reflection; public class ValidXSD { public static int Main() { string xsd = "example.xsd"; FileStream fs; XmlSchema schema; try { fs = new FileStream(xsd, FileMode.Open); schema = XmlSchema.Read(fs, new ValidationEventHandler(ShowCompileError)); XmlSchemaSet schemaSet = new XmlSchemaSet(); schemaSet.ValidationEventHandler += new ValidationEventHandler(ShowCompileError); schemaSet.Add(schema); schemaSet.Compile(); XmlSchema compiledSchema = null; foreach (XmlSchema schema1 in schemaSet.Schemas()) { compiledSchema = schema1; } schema = compiledSchema; if (schema.IsCompiled) { DisplayObjects(schema); } return 0; } catch (XmlSchemaException e) { Console.WriteLine("LineNumber = {0}", e.LineNumber); Console.WriteLine("LinePosition = {0}", e.LinePosition); Console.WriteLine("Message = {0}", e.Message); Console.WriteLine("Source = {0}", e.Source); return -1; } } private static void DisplayObjects(object o) { DisplayObjects(o, ""); } private static void DisplayObjects(object o, string indent) { Console.WriteLine("{0}{1}", indent, o); foreach (PropertyInfo property in o.GetType().GetProperties()) { if (property.PropertyType.FullName == "System.Xml.Schema.XmlSchemaObjectCollection") { XmlSchemaObjectCollection childObjectCollection = (XmlSchemaObjectCollection)property.GetValue(o, null); foreach (XmlSchemaObject schemaObject in childObjectCollection) { DisplayObjects(schemaObject, indent + "\t"); } } } } private static void ShowCompileError(object sender, ValidationEventArgs e) { Console.WriteLine("Validation Error: {0}", e.Message); } }
The example uses the example.xsd file as input.
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:group name="testGroup"> <xs:choice> <xs:any namespace="##any"/> </xs:choice> </xs:group> <xs:element name="myElement" > <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:group ref="testGroup" /> </xs:choice> </xs:complexType> </xs:element> </xs:schema>
Available since 1.1
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.


