Export (0) Print
Expand All

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

Allows you to manipulate the code generated by examining the imported schema and specifying the CLR type that it maps to.

Namespace:  System.Xml.Serialization.Advanced
Assembly:  System.Xml (in System.Xml.dll)

public virtual string ImportSchemaType(
	string name,
	string ns,
	XmlSchemaObject context,
	XmlSchemas schemas,
	XmlSchemaImporter importer,
	CodeCompileUnit compileUnit,
	CodeNamespace mainNamespace,
	CodeGenerationOptions options,
	CodeDomProvider codeProvider
)

Parameters

name
Type: System.String

The name of the element.

ns
Type: System.String

The namespace of the element.

context
Type: System.Xml.Schema.XmlSchemaObject

An XmlSchemaObject that represents schema information, such as the line number of the XML element.

schemas
Type: System.Xml.Serialization.XmlSchemas

An XmlSchemas that contains the collection of schemas in the document.

importer
Type: System.Xml.Serialization.XmlSchemaImporter

The XmlSchemaImporter that is the importer being used.

compileUnit
Type: System.CodeDom.CodeCompileUnit

A CodeCompileUnit to which you can add CodeDOM structures to generate alternative code for the XSD.

mainNamespace
Type: System.CodeDom.CodeNamespace

A CodeNamespace that represents the current namespace for the element.

options
Type: System.Xml.Serialization.CodeGenerationOptions

A CodeGenerationOptions for the setting options on the code compiler.

codeProvider
Type: System.CodeDom.Compiler.CodeDomProvider

A CodeDomProvider that is used to generate the new code.

Return Value

Type: System.String
The name of the CLR type that this maps to.

In order to control the generation of the code, you must use the classes found in the System.CodeDom namespace. For more information, see Using the CodeDOM and CodeDOM Quick Reference.

The example below shows a simple implementation of the ImportSchemaType(String, String, XmlSchemaObject, XmlSchemas, XmlSchemaImporter, CodeCompileUnit, CodeNamespace, CodeGenerationOptions, CodeDomProvider) method. The code checks the namespace and name. When the right values are found, it adds the name of a custom assembly ("Order.dll") that must be referenced in the generated code. It then adds a new namespace ("Microsoft.Samples") that is generated in the code.

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;
    }

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

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, 2.0

Community Additions

ADD
Show:
© 2014 Microsoft