XsdDataContractExporter 類別

定義

允許將資料合約中使用的一組 .NET 型別轉換成 XML 結構描述檔案 (.xsd)。

public ref class XsdDataContractExporter
public class XsdDataContractExporter
type XsdDataContractExporter = class
Public Class XsdDataContractExporter
繼承
XsdDataContractExporter

範例

下列程式碼範例會建立 XsdDataContractExporter 的執行個體,然後呼叫 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

備註

如需此 API 的詳細資訊,請參閱 XsdDataContractExporter 的補充 API 備註

建構函式

XsdDataContractExporter()

初始化 XsdDataContractExporter 類別的新執行個體。

XsdDataContractExporter(XmlSchemaSet)

使用指定的結構描述集合,初始化 XsdDataContractExporter 類別的新執行個體。

屬性

Options

取得或設定 ExportOptions,其中包含能夠針對匯出作業進行設定的選項。

Schemas

取得已匯出之 XML 結構描述的集合。

方法

CanExport(ICollection<Assembly>)

取得值,這個值表示是否能夠匯出包含在組件集合中的 Common Language Runtime (CLR) 類型集合。

CanExport(ICollection<Type>)

取得值,這個值表示是否能夠匯出包含在 ICollection<T> 中的 Common Language Runtime (CLR) 類型集合。

CanExport(Type)

取得值,這個值表示是否能夠匯出指定的 Common Language Runtime (CLR) 類型。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
Export(ICollection<Assembly>)

轉換包含在指定組件集合中的類型。

Export(ICollection<Type>)

轉換已傳遞到這個方法之 ICollection<T> 中所包含的類型。

Export(Type)

將指定的 .NET Framework 類型轉換成 XML 架構定義語言, (XSD) 架構。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetRootElementName(Type)

傳回 Type 的最上層名稱和命名空間。

GetSchemaType(Type)

傳回指定類型的 XML 結構描述類型。

GetSchemaTypeName(Type)

傳回 Type 的合約名稱以及合約命名空間。

GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

適用於

另請參閱