XsdDataContractExporter Sınıf

Tanım

Veri sözleşmelerinde kullanılan .NET türleri kümesinin bir XML şema dosyasına (.xsd) dönüştürülmesini sağlar.

public ref class XsdDataContractExporter
public class XsdDataContractExporter
type XsdDataContractExporter = class
Public Class XsdDataContractExporter
Devralma
XsdDataContractExporter

Örnekler

Aşağıdaki örnek öğesinin bir örneğini XsdDataContractExporter oluşturur ve yöntemini çağırır 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

Açıklamalar

XsdDataContractExporter Ortak dil çalışma zamanı (CLR) türleriyle temsil edilen verileri içeren bir Web hizmeti oluşturduğunuzda ve diğer Web hizmetleri tarafından kullanılacak her tür için XML şemalarını dışarı aktarmanız gerektiğinde sınıfını kullanın. Yani, XsdDataContractExporter bir dizi CLR türünü XML şemalarına dönüştürür. (Kullanılabilecek türler hakkında daha fazla bilgi için bkz. Veri Sözleşmesi Seri Hale Getiricisi Tarafından Desteklenen Türler.) Daha sonra şemalar, hizmetinizle birlikte çalışabilmesi gereken diğer kişiler tarafından kullanılmak üzere bir Web Hizmetleri Açıklama Dili (WSDL) belgesi aracılığıyla kullanıma sunılabilir.

Buna karşılık, var olan bir Web hizmetiyle birlikte çalışabilmesi gereken bir Web hizmeti oluşturuyorsanız, XsdDataContractImporter XML şemalarını dönüştürmek ve seçilen bir programlama dilindeki verileri temsil eden CLR türlerini oluşturmak için kullanın.

, XsdDataContractExporter şema koleksiyonunu içeren bir XmlSchemaSet nesne oluşturur. özelliği aracılığıyla şema kümesine erişin Schemas() .

Note

Diğer Web hizmetlerinin kullanabileceği XML şema tanımı (XSD) dosyalarını hızla oluşturmak için kullanın XsdDataContractExporter.

Şemaları XmlSchemaSet içine aktarma

XML şema dosyalarını içeren sınıfın XmlSchemaSet bir örneğini oluşturmak için aşağıdakilere dikkat etmeniz gerekir.

Dışarı aktardığınız tür kümesi, iç veri anlaşmaları kümesi olarak kaydedilir. Bu nedenle, şema kümesine CanExport performansı düşürmeden yeni türler eklemek için yöntemini birden çok kez çağırabilirsiniz çünkü kümeye yalnızca yeni türler eklenir. Export İşlem sırasında, mevcut şemalar eklenen yeni şemalarla karşılaştırılır. Çakışmalar varsa, bir özel durum oluşturulur. Aynı veri sözleşmesi adına sahip ancak farklı sözleşmeler (farklı üyeler) aynı XsdDataContractExporter örneği tarafından dışarı aktarılırsa genellikle bir çakışma algılanır.

İhracatçıyı kullanma

Bu sınıfı kullanmanın önerilen bir yolu aşağıdaki gibidir:

  1. Belirtilen türün CanExport veya tür kümesinin dışarı aktarılıp aktarılamayacağını belirlemek için aşırı yüklemelerden birini kullanın. Gereksinimlerinize uygun aşırı yüklemelerden birini kullanın.

  2. İlgili Export yöntemi çağırın.

  3. Şemaları Schemas özelliğinden alın.

Oluşturucular

Name Description
XsdDataContractExporter()

XsdDataContractExporter sınıfının yeni bir örneğini başlatır.

XsdDataContractExporter(XmlSchemaSet)

Belirtilen şema kümesiyle sınıfının yeni bir örneğini XsdDataContractExporter başlatır.

Özellikler

Name Description
Options

Dışarı aktarma işlemi için ayarlanabilecek seçenekleri içeren bir ExportOptions alır veya ayarlar.

Schemas

Dışarı aktarılan XML şemaları koleksiyonunu alır.

Yöntemler

Name Description
CanExport(ICollection<Assembly>)

Bir derleme kümesinde bulunan .common language runtime (CLR) türleri kümesinin dışarı aktarılıp aktarılamayacağını gösteren bir değer alır.

CanExport(ICollection<Type>)

içinde bulunan .common language runtime (CLR) türlerinin kümesinin dışarı aktarılıp aktarılamayacağını gösteren bir ICollection<T> değer alır.

CanExport(Type)

Belirtilen ortak dil çalışma zamanı (CLR) türünün dışarı aktarılıp aktarılamayacağını gösteren bir değer alır.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
Export(ICollection<Assembly>)

Belirtilen derleme koleksiyonunda bulunan türleri dönüştürür.

Export(ICollection<Type>)

Bu yönteme geçirilen içinde ICollection<T> yer alan türleri dönüştürür.

Export(Type)

Belirtilen .NET türünü bir XML şema tanımı dili (XSD) şemasına dönüştürür.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetRootElementName(Type)

için Typeen üst düzey adı ve ad alanını döndürür.

GetSchemaType(Type)

Belirtilen tür için XML şema türünü döndürür.

GetSchemaTypeName(Type)

için Typesözleşme adını ve sözleşme ad alanını döndürür.

GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır

Ayrıca bkz.