首页 > 代码库 > 根据xsd生成C#类
根据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
根据xsd生成C#类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。