(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

XsdDataContractExporter-Klasse

Ermöglicht die Transformation einer in Datenverträgen verwendeten Gruppe von .NET Framework-Typen in eine XML-Schemadatei (.xsd).

System.Object
  System.Runtime.Serialization.XsdDataContractExporter

Namespace:  System.Runtime.Serialization
Assembly:  System.Runtime.Serialization (in System.Runtime.Serialization.dll)

public class XsdDataContractExporter

Der XsdDataContractExporter-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeXsdDataContractExporter()Initialisiert eine neue Instanz der XsdDataContractExporter-Klasse.
Öffentliche MethodeXsdDataContractExporter(XmlSchemaSet)Initialisiert eine neue Instanz der XsdDataContractExporter-Klasse mit dem angegebenen Schemasatz.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftOptionsRuft einen ExportOptions ab, der Optionen enthält, die für die Exportoperation festgelegt werden können, oder legt diesen fest.
Öffentliche EigenschaftSchemasRuft die Auflistung exportierter XML-Schemas ab.
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeCanExport(ICollection<Assembly>)Ruft einen Wert ab, der angibt, ob ein in einem Satz von Assemblys enthaltener Satz von Common Language Runtime (CLR)-Typen exportiert werden kann.
Öffentliche MethodeCanExport(ICollection<Type>)Ruft einen Wert ab, der angibt, ob ein in einem ICollection<T> enthaltener Satz von Common Language Runtime (CLR)-Typen exportiert werden kann.
Öffentliche MethodeCanExport(Type)Ruft einen Wert ab, der angibt, ob der angegebene Common Language Runtime (CLR)-Typ exportiert werden kann.
Öffentliche MethodeEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Öffentliche MethodeExport(ICollection<Assembly>)Transformiert die in der angegebenen Auflistung von Assemblys enthaltenen Typen.
Öffentliche MethodeExport(ICollection<Type>)Transformiert die im ICollection<T> enthaltenen, an diese Methode übergebenen Typen.
Öffentliche MethodeExport(Type)Transformiert den angegebenen .NET Framework-Typ in ein XSD-Schema (XML Schema Definition Language).
Geschützte MethodeFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeGetHashCodeFungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche MethodeGetRootElementNameGibt den Namen und Namespace der obersten Ebene für den Type zurück.
Öffentliche MethodeGetSchemaTypeGibt den XML-Schematyp für den angegebenen Typ zurück.
Öffentliche MethodeGetSchemaTypeNameGibt den Vertragsnamen und den Vertragsnamespace für den Type zurück.
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Geschützte MethodeMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

Verwenden Sie die XsdDataContractExporter-Klasse, wenn Sie einen Webdienst erstellt haben, der Daten enthält, die als Common Language Runtime (CLR)-Typen dargestellt werden, und wenn Sie für die von anderen Webdiensten zu verwendenden Typen XML-Schemas exportieren wollen, d. h. XsdDataContractExporter wandelt einen Satz von CLR-Typen in XML-Schemas um. (Weitere Informationen zu Typen, die verwendet werden können, finden Sie unter Vom Datenvertragsserialisierer unterstützte Typen.) Die Schemas können anschließend über ein WSDL (Web Services Description Language)-Dokument für andere Benutzer zur Verfügung gestellt werden, die mit Ihrem Dienst zusammenarbeiten müssen.

Umgekehrt können Sie bei der Erstellung eines Webdiensts, der mit einem bestehenden Webdienst interoperieren muss, den XsdDataContractImporter verwenden, um XML-Schemas umzuwandeln und die CLR-Typen zu erstellen, die die Daten in einer ausgewählten Programmiersprache darstellen.

Der XsdDataContractExporter generiert ein XmlSchemaSet-Objekt, das die Auflistung von Schemas enthält. Der Zugriff auf den Schemasatz erfolgt über die Schemas-Eigenschaft.

HinweisHinweis

Um schnell XML-Schemadefinitionsdateien (XSD-Dateien) zu erstellen, die von anderen Webdiensten genutzt werden können, verwenden Sie den XsdDataContractExporter.

Exportieren von Schemas in ein XmlSchemaSet

Beim Erstellen einer Instanz der XmlSchemaSet-Klasse, die XML-Schemadateien enthält, sollten Sie Folgendes beachten:

Die Gruppe von Typen, die Sie exportieren, wird als interne Menge von Datenverträgen aufgezeichnet. Dies bedeutet, dass Sie die CanExport-Methode mehrmals aufrufen können, um der Schemagruppe neue Typen hinzuzufügen, ohne dass dies zu einer Leistungsverringerung führt, da nur die neuen Typen zur Gruppe hinzugefügt werden. Während der Export-Operation werden die vorhandenen Schemas mit den neuen Schemas verglichen, die hinzugefügt werden. Wenn es Konflikte gibt, wird eine Ausnahme ausgelöst. Ein Konflikt wird normalerweise festgestellt, wenn zwei Typen mit demselben Datenvertragsnamen, aber unterschiedlichen Verträgen (verschiedene Member) von derselben XsdDataContractExporter-Instanz exportiert werden.

Verwenden des Exporteur-Tools

Es wird empfohlen, diese Klasse wie folgt zu verwenden:

  1. Verwenden Sie eine der CanExport- Überladungen, um festzustellen, ob der angegebene Typ oder die angegebene Typgruppe exportiert werden kann. Verwenden Sie eine der Überladungen, die für die Anforderungen geeignet ist.

  2. Rufen Sie die entsprechende Export-Methode auf.

  3. Rufen Sie die Schemas von der Schemas-Eigenschaft ab.

Im folgenden Beispiel wird eine Instanz von XsdDataContractExporter erstellt, und die Export(Type)-Methode wird aufgerufen.


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;
    }
}


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft