This documentation is archived and is not being maintained.

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.

Namespace:  System.Xml.Schema
Assembly:  System.Xml (in System.Xml.dll)

<PermissionSetAttribute(SecurityAction.InheritanceDemand, Name := "FullTrust")> _
Public MustInherit Class XmlSchemaObject
Dim instance As XmlSchemaObject

The following example displays each schema object.

Option Strict On
Option Explicit On

Imports System
Imports System.Xml
Imports System.Xml.Schema
Imports System.IO
Imports System.Reflection
Imports Microsoft.VisualBasic

Public Class ValidXSD

    Public Shared Sub Main()

        Dim xsd As String = "example.xsd" 

        Dim fs As FileStream
        Dim schema As XmlSchema
            fs = New FileStream(xsd, FileMode.Open)
            schema = XmlSchema.Read(fs, New ValidationEventHandler(AddressOf ShowCompileError))

            Dim schemaSet As New XmlSchemaSet()
            AddHandler schemaSet.ValidationEventHandler, AddressOf ShowCompileError


            Dim compiledSchema As XmlSchema = Nothing 

            For Each schema1 As XmlSchema In schemaSet.Schemas()
                compiledSchema = schema1

            schema = compiledSchema

            If schema.IsCompiled Then
            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 'Main

    Private Overloads Shared Sub DisplayObjects(ByVal o As Object)
        DisplayObjects(o, "")
    End Sub 'DisplayObjects

    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 'DisplayObjects

    Private Shared Sub ShowCompileError(ByVal sender As Object, ByVal e As ValidationEventArgs)
        Console.WriteLine("Validation Error: {0}", e.Message)
    End Sub 'ShowCompileError
End Class 'ValidXSD

The example uses the example.xsd file as input.

<?xml version="1.0"?>
<xs:schema xmlns:xs="">
  <xs:group name="testGroup">
    <xs:any namespace="##any"/>
  <xs:element name="myElement" >
    <xs:choice maxOccurs="unbounded">
      <xs:group ref="testGroup" />

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0

XNA Framework

Supported in: 3.0, 2.0, 1.0