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)
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 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 '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="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>
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.