码迷,mamicode.com
首页 > Windows程序 > 详细

根据xsd生成C#类

时间:2016-11-08 13:44:16      阅读:405      评论:0      收藏:0      [点我收藏+]

标签:finally   sof   names   rate   mpi   port   generator   soft   stat   

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

 

根据xsd生成C#类

标签:finally   sof   names   rate   mpi   port   generator   soft   stat   

原文地址:http://www.cnblogs.com/damsoft/p/6042457.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!