Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

XsdDataContractExporter-Klasse

 

Veröffentlicht: Oktober 2016

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

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

System.Object
  System.Runtime.Serialization.XsdDataContractExporter

public class XsdDataContractExporter

NameBeschreibung
System_CAPS_pubmethodXsdDataContractExporter()

Initialisiert eine neue Instanz der XsdDataContractExporter-Klasse.

System_CAPS_pubmethodXsdDataContractExporter(XmlSchemaSet)

Initialisiert eine neue Instanz der XsdDataContractExporter-Klasse mit dem angegebenen Schemasatz.

NameBeschreibung
System_CAPS_pubpropertyOptions

Ruft einen ExportOptions ab, der Optionen enthält, die für die Exportoperation festgelegt werden können, oder legt diesen fest.

System_CAPS_pubpropertySchemas

Ruft die Auflistung exportierter XML-Schemas ab.

NameBeschreibung
System_CAPS_pubmethodCanExport(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.

System_CAPS_pubmethodCanExport(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.

System_CAPS_pubmethodCanExport(Type)

Ruft einen Wert ab, der angibt, ob der angegebene Common Language Runtime (CLR)-Typ exportiert werden kann.

System_CAPS_pubmethodEquals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.(Geerbt von „Object“.)

System_CAPS_pubmethodExport(ICollection<Assembly>)

Transformiert die in der angegebenen Auflistung von Assemblys enthaltenen Typen.

System_CAPS_pubmethodExport(ICollection<Type>)

Transformiert die im ICollection<T> enthaltenen, an diese Methode übergebenen Typen.

System_CAPS_pubmethodExport(Type)

Transformiert den angegebenen .NET Framework-Typ in ein XSD-Schema (XML Schema Definition Language).

System_CAPS_protmethodFinalize()

Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Geerbt von „Object“.)

System_CAPS_pubmethodGetHashCode()

Fungiert als die Standardhashfunktion.(Geerbt von „Object“.)

System_CAPS_pubmethodGetRootElementName(Type)

Gibt den Namen und Namespace der obersten Ebene für den Type zurück.

System_CAPS_pubmethodGetSchemaType(Type)

Gibt den XML-Schematyp für den angegebenen Typ zurück.

System_CAPS_pubmethodGetSchemaTypeName(Type)

Gibt den Vertragsnamen und den Vertragsnamespace für den Type zurück.

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_protmethodMemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.(Geerbt von „Object“.)

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.)

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.

System_CAPS_noteHinweis

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

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.

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 aus dem SchemasEigenschaft.

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
Verfügbar seit 3.0

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: