zoukankan      html  css  js  c++  java
  • 根据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

  • 相关阅读:
    使用textarea标签按Enter键后web页面中成换行 vue
    关于json数组对象和对象数组遇到的一些问题
    vue.js实现checkbox的全选和反选
    关于arcgis js 中要素更新的问题
    C# 图片上传问题
    arcgis js 几种拓扑关系详解
    ISS部署网站--HTTP 错误 404.17
    ADODB.Stream在进行文件上传时报错
    window.open 打开Excel或者Word 无权限问题
    Aspose.cell生成表格
  • 原文地址:https://www.cnblogs.com/damsoft/p/6042457.html
Copyright © 2011-2022 走看看