XmlSchemaObject Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente la classe racine de la hiérarchie du modèle objet de schéma Xml et sert de classe de base pour les classes telles que la XmlSchema classe.
public ref class XmlSchemaObject abstract
public abstract class XmlSchemaObject
type XmlSchemaObject = class
Public MustInherit Class XmlSchemaObject
- Héritage
-
XmlSchemaObject
- Dérivé
Exemples
L’exemple suivant affiche chaque objet de schéma.
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
L’exemple utilise le example.xsd fichier comme entrée.
<?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>
Constructeurs
| Nom | Description |
|---|---|
| XmlSchemaObject() |
Initialise une nouvelle instance de la classe XmlSchemaObject. |
Propriétés
| Nom | Description |
|---|---|
| LineNumber |
Obtient ou définit le numéro de ligne dans le fichier auquel l’élément |
| LinePosition |
Obtient ou définit la position de ligne dans le fichier auquel l’élément |
| Namespaces |
Obtient ou définit l’utilisation XmlSerializerNamespaces avec cet objet de schéma. |
| Parent |
Obtient ou définit le parent de ce XmlSchemaObject. |
| SourceUri |
Obtient ou définit l’emplacement source du fichier qui a chargé le schéma. |
Méthodes
| Nom | Description |
|---|---|
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |