ExportOptions Class
Represents the options that can be set for an XsdDataContractExporter.
Assembly: System.Runtime.Serialization (in System.Runtime.Serialization.dll)
The XsdDataContractExporter is used to generate XSD schemas from a type or assembly. You can also use the XsdDataContractImporter to generate .NET Framework code from a schema document.
For more information about importing and exporting schemas, see Schema Import and Export and Exporting Schemas From Classes.
The KnownTypes property is used by the DataContractSerializer to include types that can be read in an object graph. For more information about the data contract and known types, see Data Contract Known Types.
For more information about data contracts, see Using Data Contracts.
The following example creates an instance of the ExportOptions class and adds a type (Possessions) to the collection returned by the KnownTypes property.
The XsdDataContractExporter then exports the schemas of the types, including the Possessions type added to the collection.
Imports System 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
Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.