XmlSchemaObject Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa a classe raiz para a hierarquia do modelo de objetos do esquema XML e serve como classe base para classes como a XmlSchema classe.
public ref class XmlSchemaObject abstract
public abstract class XmlSchemaObject
type XmlSchemaObject = class
Public MustInherit Class XmlSchemaObject
- Herança
-
XmlSchemaObject
- Derivado
Exemplos
O exemplo seguinte mostra cada objeto de esquema.
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
O exemplo usa o example.xsd ficheiro como entrada.
<?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>
Construtores
| Name | Description |
|---|---|
| XmlSchemaObject() |
Inicializa uma nova instância da XmlSchemaObject classe. |
Propriedades
| Name | Description |
|---|---|
| LineNumber |
Obtém ou define o número da linha no ficheiro a que o |
| LinePosition |
Obtém ou define a posição da linha no ficheiro a que o |
| Namespaces |
Obtém ou define o XmlSerializerNamespaces para usar com este objeto de esquema. |
| Parent |
Obtém ou define o pai deste XmlSchemaObject. |
| SourceUri |
Obtém ou define a localização de origem do ficheiro que carregou o esquema. |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |