XsdDataContractExporter Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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:
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.
İlgili Export yöntemi çağırın.
Ş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) |