This documentation is archived and is not being maintained.

ExportOptions Class

Represents the options that can be set for an XsdDataContractExporter.

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

Public Class ExportOptions
Dim instance As ExportOptions

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() 
        Catch exc As Exception
            Console.WriteLine("Message: {0} StackTrace:{1}", exc.Message, exc.StackTrace)
        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()
        exporter.Options = eOptions

        If exporter.CanExport(GetType(Employee)) Then
            Console.WriteLine("number of schemas: {0}", exporter.Schemas.Count)
            Dim mySchemas As XmlSchemaSet = exporter.Schemas

            Dim XmlNameValue As XmlQualifiedName = _
            Dim EmployeeNameSpace As String = XmlNameValue.Namespace 

            Dim schema As XmlSchema
            For Each schema In  mySchemas.Schemas(EmployeeNameSpace)
            Next schema
        End If 

    End Sub  

    Shared Sub GetXmlElementName() 
        Dim myExporter As New XsdDataContractExporter()
        Dim xmlElementName As XmlQualifiedName = myExporter. _
        Console.WriteLine("Namespace: {0}", xmlElementName.Namespace)
        Console.WriteLine("Name: {0}", xmlElementName.Name)
        Console.WriteLine("IsEmpty: {0}", xmlElementName.IsEmpty)

    End Sub 

    <DataContract([Namespace] := "")>  _
    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


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

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.

.NET Framework

Supported in: 3.5, 3.0