根据xsd生成C#类

var file = "1.xsd";
    
            // Get the namespace for the schema.
            CodeNamespace ns = Processor.Process(file, "Dm");
            // Create the appropriate generator for the language.
            CodeDomProvider provider;
            if ("cs" == "cs")
                provider = new Microsoft.CSharp.CSharpCodeProvider();
            else if (args[3] == "vb")
                provider = new Microsoft.VisualBasic.VBCodeProvider();
            else
                throw new ArgumentException("Invalid language", args[3]);
            // Write the code to the output file.
            using (StreamWriter sw = new StreamWriter(file, false))
            {
                provider.CreateGenerator().GenerateCodeFromNamespace(
                  ns, sw, new CodeGeneratorOptions());
            }
            Console.WriteLine("Finished");
            Console.Read();

 

Process

public sealed class Processor
        {
            public static CodeNamespace Process(string xsdFile,
               string targetNamespace)
            {
                // Load the XmlSchema and its collection. 
                XmlSchema xsd;
                using (FileStream fs = new FileStream(xsdFile, FileMode.Open))
                {
                    xsd = XmlSchema.Read(fs, null);
                    xsd.Compile(null);
                }
                XmlSchemas schemas = new XmlSchemas();
                schemas.Add(xsd);
                // Create the importer for these schemas. 
                XmlSchemaImporter importer = new XmlSchemaImporter(schemas);
                // System.CodeDom namespace for the XmlCodeExporter to put classes in. 
                CodeNamespace ns = new CodeNamespace(targetNamespace);
                XmlCodeExporter exporter = new XmlCodeExporter(ns);
                // Iterate schema top-level elements and export code for each. 
                foreach (XmlSchemaElement element in xsd.Elements.Values)
                {
                    // Import the mapping first. 
                    XmlTypeMapping mapping = importer.ImportTypeMapping(
                      element.QualifiedName);
                    // Export the code finally. 
                    exporter.ExportTypeMapping(mapping);
                }
                return ns;
            }
        } 

Client

 

posted @ 2016-11-08 11:49  晓明的哥哥  阅读(3412)  评论(0编辑  收藏  举报