다음을 통해 공유


XsdDataContractExporter 클래스

정의

데이터 계약에 사용되는 .NET 형식 세트를 XML 스키마 파일(.xsd)로 변환할 수 있습니다.

public ref class XsdDataContractExporter
public class XsdDataContractExporter
type XsdDataContractExporter = class
Public Class XsdDataContractExporter
상속
XsdDataContractExporter

예제

다음 예제에서는 의 XsdDataContractExporter instance 만들고 메서드를 호출합니다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>)

어셈블리 집합에 포함된 CLR(공용 언어 런타임) 형식을 내보낼 수 있는지 여부를 나타내는 값을 가져옵니다.

CanExport(ICollection<Type>)

ICollection<T>에 포함된 CLR(공용 언어 런타임) 형식 집합을 내보낼 수 있는지 여부를 나타내는 값을 가져옵니다.

CanExport(Type)

지정한 CLR(공용 언어 런타임) 형식을 내보낼 수 있는지 여부를 나타내는 값을 가져옵니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
Export(ICollection<Assembly>)

지정한 어셈블리 컬렉션에 포함된 형식을 변환합니다.

Export(ICollection<Type>)

이 메서드에 전달되는 ICollection<T>에 포함된 형식을 변환합니다.

Export(Type)

지정된 .NET Framework 형식을 XSD(XML 스키마 정의 언어) 스키마로 변환합니다.

GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetRootElementName(Type)

Type의 최상위 이름과 네임스페이스를 반환합니다.

GetSchemaType(Type)

지정한 형식에 대한 XML 스키마 형식을 반환합니다.

GetSchemaTypeName(Type)

Type의 계약 이름과 계약 네임스페이스를 반환합니다.

GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상

추가 정보