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

  • 相关阅读:
    P2325 [SCOI2005]王室联邦
    P2709 小B的询问
    P4867 Gty的二逼妹子序列
    P4396 [AHOI2013]作业
    CF617E XOR and Favorite Number
    P4462 [CQOI2018]异或序列
    p4434 [COCI2017-2018#2] ​​Usmjeri
    LOJ 117 有源汇有上下界最小流
    P4137 Rmq Problem / mex
    LOJ 116 有源汇有上下界最大流
  • 原文地址:https://www.cnblogs.com/damsoft/p/6042457.html
Copyright © 2011-2022 走看看