Condividi tramite


XsdDataContractExporter Classe

Definizione

Consente la trasformazione di un set dei tipi .NET usati in contratti dati in un file di XML Schema (estensione xsd).

public ref class XsdDataContractExporter
public class XsdDataContractExporter
type XsdDataContractExporter = class
Public Class XsdDataContractExporter
Ereditarietà
XsdDataContractExporter

Esempio

Nell'esempio seguente viene creata un'istanza della classe XsdDataContractExporter e viene chiamato il metodo Export(Type).

using System;
using System.Xml;
using System.Runtime.Serialization;
using System.Xml.Schema;

public class Program
{
    public static void Main()
    {
        try
        {
            ExportXSD();
        }
        catch (Exception exc)
        {
            Console.WriteLine("Message: {0} StackTrace:{1}", exc.Message, exc.StackTrace);
        }
        finally
        {
            Console.ReadLine();
        }
    }

    static void ExportXSD()
    {
        XsdDataContractExporter exporter = new XsdDataContractExporter();
        if (exporter.CanExport(typeof(Employee)))
        {
            exporter.Export(typeof(Employee));
            Console.WriteLine("number of schemas: {0}", exporter.Schemas.Count);
            Console.WriteLine();
            XmlSchemaSet mySchemas = exporter.Schemas;

            XmlQualifiedName XmlNameValue = exporter.GetRootElementName(typeof(Employee));
            string EmployeeNameSpace = XmlNameValue.Namespace;

            foreach (XmlSchema schema in mySchemas.Schemas(EmployeeNameSpace))
            {
                schema.Write(Console.Out);
            }
        }
    }

    static void GetXmlElementName()
    {
        XsdDataContractExporter myExporter = new XsdDataContractExporter();
        XmlQualifiedName xmlElementName =myExporter.GetRootElementName(typeof(Employee));
        Console.WriteLine("Namespace: {0}", xmlElementName.Namespace);
        Console.WriteLine("Name: {0}", xmlElementName.Name);
        Console.WriteLine("IsEmpty: {0}", xmlElementName.IsEmpty);
    }

    [DataContract(Namespace = "www.Contoso.com/Examples/")]
    public class Employee
    {
        [DataMember]
        public string EmployeeName;
        [DataMember]
        private string ID;
    }
}
Imports System.Collections
Imports System.Xml
Imports System.Runtime.Serialization
Imports System.Xml.Schema

Public Class Program
    Public Shared Sub Main() 
        Try
            ExportXSD()
        Catch exc As Exception
            Console.WriteLine("Message: {0} StackTrace:{1}", exc.Message, exc.StackTrace)
        Finally
            Console.ReadLine()
        End Try
    
    End Sub 
    
    
    Shared Sub ExportXSD() 

        Dim exporter As New XsdDataContractExporter()

        ' Use the ExportOptions to add the Possessions type to the 
        ' collection of KnownTypes. 
        Dim eOptions As New ExportOptions()
        eOptions.KnownTypes.Add(GetType(Possessions))        
        exporter.Options = eOptions

        If exporter.CanExport(GetType(Employee)) Then
            exporter.Export(GetType(Employee))
            Console.WriteLine("number of schemas: {0}", exporter.Schemas.Count)
            Console.WriteLine()
            Dim mySchemas As XmlSchemaSet = exporter.Schemas
            
            Dim XmlNameValue As XmlQualifiedName = _
               exporter.GetRootElementName(GetType(Employee))
            Dim EmployeeNameSpace As String = XmlNameValue.Namespace
            
            Dim schema As XmlSchema
            For Each schema In  mySchemas.Schemas(EmployeeNameSpace)
                schema.Write(Console.Out)
            Next schema
        End If
    
    End Sub 
    
    
    Shared Sub GetXmlElementName() 
        Dim myExporter As New XsdDataContractExporter()
        Dim xmlElementName As XmlQualifiedName = myExporter. _
            GetRootElementName(GetType(Employee))
        Console.WriteLine("Namespace: {0}", xmlElementName.Namespace)
        Console.WriteLine("Name: {0}", xmlElementName.Name)
        Console.WriteLine("IsEmpty: {0}", xmlElementName.IsEmpty)
    
    End Sub 
    
    <DataContract([Namespace] := "www.Contoso.com/Examples/")>  _
    Public Class Employee

        <DataMember()>  _
        Public EmployeeName As String
        <DataMember()>  _
        Private ID As String
        ' This member may return a Possessions type.
        <DataMember> _
        public Miscellaneous As Hashtable 

    End Class 

    <DataContract> _
    Public Class Possessions

        <DataMember> _
        Public ItemName As String
    End Class

End Class

Commenti

Per altre informazioni su questa API, vedere Note sulle API supplementari per XsdDataContractExporter.

Costruttori

XsdDataContractExporter()

Inizializza una nuova istanza della classe XsdDataContractExporter.

XsdDataContractExporter(XmlSchemaSet)

Inizializza una nuova istanza della classe XsdDataContractExporter con il set di schemi specificato.

Proprietà

Options

Ottiene o imposta un oggetto ExportOptions contenente le opzioni che è possibile impostare per l'operazione di esportazione.

Schemas

Ottiene la raccolta di XML Schema esportati.

Metodi

CanExport(ICollection<Assembly>)

Ottiene un valore che indica se il set di tipi CLR contenuto in un set di assembly può essere esportato.

CanExport(ICollection<Type>)

Ottiene un valore che indica se il set di tipi CLR (Common Language Runtime ) contenuto in un'interfaccia ICollection<T> può essere esportato.

CanExport(Type)

Ottiene un valore che indica se il tipo CLR (Commom Language Runtime) specificato può essere esportato.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
Export(ICollection<Assembly>)

Trasforma i tipi inclusi nella raccolta di assembly specificata.

Export(ICollection<Type>)

Trasforma i tipi inclusi nell'oggetto ICollection<T> passato a questo metodo.

Export(Type)

Trasforma il tipo .NET Framework specificato in uno schema XSD (XML Schema Definition Language).

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetRootElementName(Type)

Restituisce il nome e lo spazio dei nomi di primo livello per Type.

GetSchemaType(Type)

Restituisce il tipo di XML Schema per il tipo specificato.

GetSchemaTypeName(Type)

Restituisce il nome e lo spazio dei nomi del contratto per Type.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche