根据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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM