XmlSchemaObject Class  
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Represents the root class for the Xml schema object model hierarchy and serves as a base class for classes such as the XmlSchema class.
public ref class XmlSchemaObject abstractpublic abstract class XmlSchemaObjecttype XmlSchemaObject = classPublic MustInherit Class XmlSchemaObject- Inheritance
- 
				XmlSchemaObject
- Derived
Examples
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);
    }
}
Option Strict On
Option Explicit On
Imports System.Xml
Imports System.Xml.Schema
Imports System.IO
Imports System.Reflection
Public Class ValidXSD
    Public Shared Sub Main()
        Dim xsd As String = "example.xsd"
        Dim fs As FileStream
        Dim schema As XmlSchema
        Try
            fs = New FileStream(xsd, FileMode.Open)
            schema = XmlSchema.Read(fs, New ValidationEventHandler(AddressOf ShowCompileError))
            Dim schemaSet As New XmlSchemaSet()
            AddHandler schemaSet.ValidationEventHandler, AddressOf ShowCompileError
            schemaSet.Add(schema)
            schemaSet.Compile()
            Dim compiledSchema As XmlSchema = Nothing
            For Each schema1 As XmlSchema In schemaSet.Schemas()
                compiledSchema = schema1
            Next
            schema = compiledSchema
            If schema.IsCompiled Then
                DisplayObjects(schema)
            End If
        Catch e As XmlSchemaException
            Console.WriteLine("LineNumber = {0}", e.LineNumber)
            Console.WriteLine("LinePosition = {0}", e.LinePosition)
            Console.WriteLine("Message = {0}", e.Message)
            Console.WriteLine("Source = {0}", e.Source)
        End Try
    End Sub
    Private Overloads Shared Sub DisplayObjects(ByVal o As Object)
        DisplayObjects(o, "")
    End Sub
    Private Overloads Shared Sub DisplayObjects(ByVal o As Object, ByVal indent As String)
        Console.WriteLine("{0}{1}", indent, o)
        Dim property1 As PropertyInfo
        For Each property1 In o.GetType().GetProperties()
            If property1.PropertyType.FullName = "System.Xml.Schema.XmlSchemaObjectCollection" Then
                Dim childObjectCollection As XmlSchemaObjectCollection = CType(property1.GetValue(o, Nothing), XmlSchemaObjectCollection)
                Dim schemaObject As XmlSchemaObject
                For Each schemaObject In childObjectCollection
                    DisplayObjects(schemaObject, indent + ControlChars.Tab)
                Next schemaObject
            End If
        Next property1
    End Sub
    Private Shared Sub ShowCompileError(ByVal sender As Object, ByVal e As ValidationEventArgs)
        Console.WriteLine("Validation Error: {0}", e.Message)
    End Sub
End Class
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>
Constructors
| XmlSchemaObject() | Initializes a new instance of the XmlSchemaObject class. | 
Properties
| LineNumber | Gets or sets the line number in the file to which the  | 
| LinePosition | Gets or sets the line position in the file to which the  | 
| 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. | 
Methods
| Equals(Object) | Determines whether the specified object is equal to the current object.(Inherited from Object) | 
| GetHashCode() | Serves as the default hash function.(Inherited from Object) | 
| GetType() | Gets the Type of the current instance.(Inherited from Object) | 
| MemberwiseClone() | Creates a shallow copy of the current Object.(Inherited from Object) | 
| ToString() | Returns a string that represents the current object.(Inherited from Object) |