Compartilhar via


SchemaImporterExtension.ImportSchemaType Método

Definição

Permite que você manipule o código gerado examinando o esquema importado e especificando o tipo CLR para o qual ele é mapeado.

Sobrecargas

ImportSchemaType(XmlSchemaType, XmlSchemaObject, XmlSchemas, XmlSchemaImporter, CodeCompileUnit, CodeNamespace, CodeGenerationOptions, CodeDomProvider)

Permite que você manipule o código gerado examinando o esquema importado e especificando o tipo CLR para o qual ele é mapeado.

ImportSchemaType(String, String, XmlSchemaObject, XmlSchemas, XmlSchemaImporter, CodeCompileUnit, CodeNamespace, CodeGenerationOptions, CodeDomProvider)

Permite que você manipule o código gerado examinando o esquema importado e especificando o tipo CLR para o qual ele é mapeado.

Exemplos

O exemplo a seguir mostra uma implementação simples do ImportSchemaType(String, String, XmlSchemaObject, XmlSchemas, XmlSchemaImporter, CodeCompileUnit, CodeNamespace, CodeGenerationOptions, CodeDomProvider) método . O código verifica o namespace e o nome. Quando os valores certos são encontrados, ele adiciona o nome de um assembly personalizado ("Order.dll") que deve ser referenciado no código gerado. Em seguida, ele adiciona um novo namespace ("Microsoft.Samples") gerado no código.

public override string ImportSchemaType(string name, string ns,
    XmlSchemaObject context, XmlSchemas schemas,
    XmlSchemaImporter importer,
    CodeCompileUnit compileUnit, CodeNamespace codeNamespace,
    CodeGenerationOptions options, CodeDomProvider codeGenerator)
    {
        if (name.Equals("Order") && ns.Equals("http://orders/"))
        {
            compileUnit.ReferencedAssemblies.Add("Order.dll");
            codeNamespace.Imports.Add
               (new CodeNamespaceImport("Microsoft.Samples"));
             return "Order";
        }
        return null;
    }
Public Overrides Function ImportschemaType(ByVal name As String, ByVal ns As String, ByVal context As XmlSchemaObject, ByVal schemas As XmlSchemas, ByVal importer As XmlSchemaImporter, ByVal compileUnit As CodeCompileUnit, ByVal codeNamespace As CodeNamespace, ByVal options As CodeGenerationOptions, ByVal codeGenerator As CodeDomProvider) As String 
    If name.Equals("Order") AndAlso ns.Equals("http://orders/") Then
        compileUnit.ReferencedAssemblies.Add("Order.dll")
        codeNamespace.Imports.Add(New CodeNamespaceImport("Microsoft.Samples"))           
        Return "Order"
    End If 
    
    Return Nothing

End Function 'ImportschemaType

ImportSchemaType(XmlSchemaType, XmlSchemaObject, XmlSchemas, XmlSchemaImporter, CodeCompileUnit, CodeNamespace, CodeGenerationOptions, CodeDomProvider)

Permite que você manipule o código gerado examinando o esquema importado e especificando o tipo CLR para o qual ele é mapeado.

public:
 virtual System::String ^ ImportSchemaType(System::Xml::Schema::XmlSchemaType ^ type, System::Xml::Schema::XmlSchemaObject ^ context, System::Xml::Serialization::XmlSchemas ^ schemas, System::Xml::Serialization::XmlSchemaImporter ^ importer, System::CodeDom::CodeCompileUnit ^ compileUnit, System::CodeDom::CodeNamespace ^ mainNamespace, System::Xml::Serialization::CodeGenerationOptions options, System::CodeDom::Compiler::CodeDomProvider ^ codeProvider);
public virtual string ImportSchemaType (System.Xml.Schema.XmlSchemaType type, System.Xml.Schema.XmlSchemaObject context, System.Xml.Serialization.XmlSchemas schemas, System.Xml.Serialization.XmlSchemaImporter importer, System.CodeDom.CodeCompileUnit compileUnit, System.CodeDom.CodeNamespace mainNamespace, System.Xml.Serialization.CodeGenerationOptions options, System.CodeDom.Compiler.CodeDomProvider codeProvider);
abstract member ImportSchemaType : System.Xml.Schema.XmlSchemaType * System.Xml.Schema.XmlSchemaObject * System.Xml.Serialization.XmlSchemas * System.Xml.Serialization.XmlSchemaImporter * System.CodeDom.CodeCompileUnit * System.CodeDom.CodeNamespace * System.Xml.Serialization.CodeGenerationOptions * System.CodeDom.Compiler.CodeDomProvider -> string
override this.ImportSchemaType : System.Xml.Schema.XmlSchemaType * System.Xml.Schema.XmlSchemaObject * System.Xml.Serialization.XmlSchemas * System.Xml.Serialization.XmlSchemaImporter * System.CodeDom.CodeCompileUnit * System.CodeDom.CodeNamespace * System.Xml.Serialization.CodeGenerationOptions * System.CodeDom.Compiler.CodeDomProvider -> string
Public Overridable Function ImportSchemaType (type As XmlSchemaType, context As XmlSchemaObject, schemas As XmlSchemas, importer As XmlSchemaImporter, compileUnit As CodeCompileUnit, mainNamespace As CodeNamespace, options As CodeGenerationOptions, codeProvider As CodeDomProvider) As String

Parâmetros

type
XmlSchemaType

O tipo XSD.

context
XmlSchemaObject

As informações de esquema, como o número de linha do elemento XML.

schemas
XmlSchemas

A coleção de esquemas no documento.

importer
XmlSchemaImporter

O importador que está sendo usado.

compileUnit
CodeCompileUnit

Um CodeCompileUnit ao qual você pode adicionar estruturas CodeDOM para gerar código alternativo para o XSD.

mainNamespace
CodeNamespace

O namespace atual do elemento.

options
CodeGenerationOptions

Uma combinação bit a bit dos valores de enumeração que especifica as opções de configuração do compilador do código.

codeProvider
CodeDomProvider

Um CodeDomProvider que é usado para gerar o novo código.

Retornos

O nome do tipo CLR para o qual isso é mapeado.

Exemplos

O exemplo a seguir mostra uma implementação simples do ImportSchemaType(String, String, XmlSchemaObject, XmlSchemas, XmlSchemaImporter, CodeCompileUnit, CodeNamespace, CodeGenerationOptions, CodeDomProvider) método . O código verifica o namespace e o nome. Quando os valores certos são encontrados, ele adiciona o nome de um assembly personalizado ("Order.dll") que deve ser referenciado no código gerado. Em seguida, ele adiciona um novo namespace ("Microsoft.Samples") gerado no código.

public override string ImportSchemaType(string name, string ns,
    XmlSchemaObject context, XmlSchemas schemas,
    XmlSchemaImporter importer,
    CodeCompileUnit compileUnit, CodeNamespace codeNamespace,
    CodeGenerationOptions options, CodeDomProvider codeGenerator)
    {
        if (name.Equals("Order") && ns.Equals("http://orders/"))
        {
            compileUnit.ReferencedAssemblies.Add("Order.dll");
            codeNamespace.Imports.Add
               (new CodeNamespaceImport("Microsoft.Samples"));
             return "Order";
        }
        return null;
    }
Public Overrides Function ImportschemaType(ByVal name As String, ByVal ns As String, ByVal context As XmlSchemaObject, ByVal schemas As XmlSchemas, ByVal importer As XmlSchemaImporter, ByVal compileUnit As CodeCompileUnit, ByVal codeNamespace As CodeNamespace, ByVal options As CodeGenerationOptions, ByVal codeGenerator As CodeDomProvider) As String 
    If name.Equals("Order") AndAlso ns.Equals("http://orders/") Then
        compileUnit.ReferencedAssemblies.Add("Order.dll")
        codeNamespace.Imports.Add(New CodeNamespaceImport("Microsoft.Samples"))           
        Return "Order"
    End If 
    
    Return Nothing

End Function 'ImportschemaType

Aplica-se a

ImportSchemaType(String, String, XmlSchemaObject, XmlSchemas, XmlSchemaImporter, CodeCompileUnit, CodeNamespace, CodeGenerationOptions, CodeDomProvider)

Permite que você manipule o código gerado examinando o esquema importado e especificando o tipo CLR para o qual ele é mapeado.

public:
 virtual System::String ^ ImportSchemaType(System::String ^ name, System::String ^ ns, System::Xml::Schema::XmlSchemaObject ^ context, System::Xml::Serialization::XmlSchemas ^ schemas, System::Xml::Serialization::XmlSchemaImporter ^ importer, System::CodeDom::CodeCompileUnit ^ compileUnit, System::CodeDom::CodeNamespace ^ mainNamespace, System::Xml::Serialization::CodeGenerationOptions options, System::CodeDom::Compiler::CodeDomProvider ^ codeProvider);
public virtual string ImportSchemaType (string name, string ns, System.Xml.Schema.XmlSchemaObject context, System.Xml.Serialization.XmlSchemas schemas, System.Xml.Serialization.XmlSchemaImporter importer, System.CodeDom.CodeCompileUnit compileUnit, System.CodeDom.CodeNamespace mainNamespace, System.Xml.Serialization.CodeGenerationOptions options, System.CodeDom.Compiler.CodeDomProvider codeProvider);
abstract member ImportSchemaType : string * string * System.Xml.Schema.XmlSchemaObject * System.Xml.Serialization.XmlSchemas * System.Xml.Serialization.XmlSchemaImporter * System.CodeDom.CodeCompileUnit * System.CodeDom.CodeNamespace * System.Xml.Serialization.CodeGenerationOptions * System.CodeDom.Compiler.CodeDomProvider -> string
override this.ImportSchemaType : string * string * System.Xml.Schema.XmlSchemaObject * System.Xml.Serialization.XmlSchemas * System.Xml.Serialization.XmlSchemaImporter * System.CodeDom.CodeCompileUnit * System.CodeDom.CodeNamespace * System.Xml.Serialization.CodeGenerationOptions * System.CodeDom.Compiler.CodeDomProvider -> string
Public Overridable Function ImportSchemaType (name As String, ns As String, context As XmlSchemaObject, schemas As XmlSchemas, importer As XmlSchemaImporter, compileUnit As CodeCompileUnit, mainNamespace As CodeNamespace, options As CodeGenerationOptions, codeProvider As CodeDomProvider) As String

Parâmetros

name
String

O nome do elemento.

ns
String

O namespace do elemento.

context
XmlSchemaObject

As informações de esquema, como o número de linha do elemento XML.

schemas
XmlSchemas

A coleção de esquemas no documento.

importer
XmlSchemaImporter

O importador que está sendo usado.

compileUnit
CodeCompileUnit

Um CodeCompileUnit ao qual você pode adicionar estruturas CodeDOM para gerar código alternativo para o XSD.

mainNamespace
CodeNamespace

O namespace atual do elemento.

options
CodeGenerationOptions

Uma combinação bit a bit dos valores de enumeração que especifica as opções de configuração do compilador do código.

codeProvider
CodeDomProvider

Um CodeDomProvider que é usado para gerar o novo código.

Retornos

O nome do tipo CLR para o qual isso é mapeado.

Exemplos

O exemplo a seguir mostra uma implementação simples do ImportSchemaType(String, String, XmlSchemaObject, XmlSchemas, XmlSchemaImporter, CodeCompileUnit, CodeNamespace, CodeGenerationOptions, CodeDomProvider) método . O código verifica o namespace e o nome. Quando os valores certos são encontrados, ele adiciona o nome de um assembly personalizado ("Order.dll") que deve ser referenciado no código gerado. Em seguida, ele adiciona um novo namespace ("Microsoft.Samples") gerado no código.

public override string ImportSchemaType(string name, string ns,
    XmlSchemaObject context, XmlSchemas schemas,
    XmlSchemaImporter importer,
    CodeCompileUnit compileUnit, CodeNamespace codeNamespace,
    CodeGenerationOptions options, CodeDomProvider codeGenerator)
    {
        if (name.Equals("Order") && ns.Equals("http://orders/"))
        {
            compileUnit.ReferencedAssemblies.Add("Order.dll");
            codeNamespace.Imports.Add
               (new CodeNamespaceImport("Microsoft.Samples"));
             return "Order";
        }
        return null;
    }
Public Overrides Function ImportschemaType(ByVal name As String, ByVal ns As String, ByVal context As XmlSchemaObject, ByVal schemas As XmlSchemas, ByVal importer As XmlSchemaImporter, ByVal compileUnit As CodeCompileUnit, ByVal codeNamespace As CodeNamespace, ByVal options As CodeGenerationOptions, ByVal codeGenerator As CodeDomProvider) As String 
    If name.Equals("Order") AndAlso ns.Equals("http://orders/") Then
        compileUnit.ReferencedAssemblies.Add("Order.dll")
        codeNamespace.Imports.Add(New CodeNamespaceImport("Microsoft.Samples"))           
        Return "Order"
    End If 
    
    Return Nothing

End Function 'ImportschemaType

Comentários

Para controlar a geração do código, você deve usar as classes encontradas no System.CodeDom namespace. Para obter mais informações, consulte Usando a referência rápida codeDOM e codeDOM.

Aplica-se a