XsdDataContractExporter Klass

Definition

Tillåter omvandling av en uppsättning .NET typer som används i datakontrakt till en XML-schemafil (.xsd).

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

Exempel

I följande exempel skapas en instans av XsdDataContractExporter och anropar Export(Type) metoden.

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

Kommentarer

Mer information om det här API:et finns i Kompletterande API-kommentarer för XsdDataContractExporter.

Konstruktorer

Name Description
XsdDataContractExporter()

Initierar en ny instans av XsdDataContractExporter klassen.

XsdDataContractExporter(XmlSchemaSet)

Initierar en ny instans av XsdDataContractExporter klassen med den angivna uppsättningen scheman.

Egenskaper

Name Description
Options

Hämtar eller anger ett ExportOptions som innehåller alternativ som kan anges för exportåtgärden.

Schemas

Hämtar samlingen med exporterade XML-scheman.

Metoder

Name Description
CanExport(ICollection<Assembly>)

Hämtar ett värde som anger om uppsättningen med .common language runtime-typer (CLR) som finns i en uppsättning sammansättningar kan exporteras.

CanExport(ICollection<Type>)

Hämtar ett värde som anger om uppsättningen med .common language runtime-typer (CLR) som finns i en ICollection<T> kan exporteras.

CanExport(Type)

Hämtar ett värde som anger om den angivna CLR-typen (Common Language Runtime) kan exporteras.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
Export(ICollection<Assembly>)

Transformerar de typer som finns i den angivna samlingen sammansättningar.

Export(ICollection<Type>)

Transformerar de typer som finns i den ICollection<T> som skickas till den här metoden.

Export(Type)

Omvandlar den angivna .NET typen till ett XSD-schema (XML-schemadefinitionsspråk).

GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetRootElementName(Type)

Returnerar toppnivånamnet och namnområdet för Type.

GetSchemaType(Type)

Returnerar XML-schematypen för den angivna typen.

GetSchemaTypeName(Type)

Returnerar kontraktsnamnet och kontraktnamnområdet för Type.

GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för

Se även