Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

XmlSchemaObject Class

Definition

Namespace:
System.Xml.Schema
Assemblies:
netstandard.dll, System.Xml.ReaderWriter.dll
Assembly:
System.Xml.ReaderWriter.dll
Assembly:
System.Xml.dll
Assembly:
netstandard.dll
Source:
XmlSchemaObject.cs
Source:
XmlSchemaObject.cs
Source:
XmlSchemaObject.cs
Source:
XmlSchemaObject.cs
Source:
XmlSchemaObject.cs

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 abstract
public abstract class XmlSchemaObject
type XmlSchemaObject = class
Public 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

Name Description
XmlSchemaObject()

Initializes a new instance of the XmlSchemaObject class.

Properties

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.

Methods

Name Description
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)

Applies to


Feedback

Was this page helpful?