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 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.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Reflection;
using namespace System::Xml;
using namespace System::Xml::Schema;
ref class ValidXSD
{
private:
static void DisplayObjects(Object^ o)
{
DisplayObjects(o, "");
}
static void DisplayObjects(Object^ o, String^ indent)
{
Console::WriteLine("{0}{1}", indent, o);
for each (PropertyInfo^ property1 in o->GetType()->GetProperties())
{
if (property1->PropertyType->FullName == "System.Xml.Schema.XmlSchemaObjectCollection")
{
XmlSchemaObjectCollection^ childObjectCollection = dynamic_cast<XmlSchemaObjectCollection^>(property1->GetValue(o, nullptr));
for each (XmlSchemaObject^ schemaObject in childObjectCollection)
{
DisplayObjects(schemaObject, indent + "\t");
}
}
}
}
static void ShowCompileError(Object^ sender, ValidationEventArgs^ e)
{
Console::WriteLine("Validation Error: {0}", e->Message);
}
public:
static int Main()
{
String^ xsd = "example.xsd";
FileStream^ fs;
XmlSchema^ schema;
try
{
fs = gcnew FileStream(xsd, FileMode::Open);
schema = XmlSchema::Read(fs, gcnew ValidationEventHandler(ShowCompileError));
XmlSchemaSet^ schemaSet = gcnew XmlSchemaSet();
schemaSet->ValidationEventHandler += gcnew ValidationEventHandler(ShowCompileError);
schemaSet->Add(schema);
schemaSet->Compile();
XmlSchema^ compiledSchema = nullptr;
for each (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;
}
}
};
int main()
{
ValidXSD::Main();
return 0;
}
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) |