Programmatically use XSD.exe tool feature (generate schema from class) through .NET Framework classes?

后端 未结 2 1038
情歌与酒
情歌与酒 2021-01-05 08:52

I want to generate an XML Schema based upon a class, just as you can do with the Xsd.exe tool.

E.g. xsd.exe /type: typename /outputdir:c:\\ assmeblyname

2条回答
  •  别那么骄傲
    2021-01-05 09:20

    do this:

    public string GetFullSchema() {
    
            string @namespace = "yourNamespace";
    
            var q = from t in Assembly.GetExecutingAssembly().GetTypes()
            where t.IsClass && t.Namespace ==  @namespace
            select t;
    
            XmlReflectionImporter importer = new XmlReflectionImporter(@namespace);
    
            XmlSchemas schemas = new XmlSchemas();
            XmlSchemaExporter exporter = new XmlSchemaExporter(schemas);
    
    
            foreach (var x in q)
            {
                    var map = importer.ImportTypeMapping(x);
                    exporter.ExportTypeMapping(map);
            }
    
            using (MemoryStream ms = new MemoryStream())
            {
               schemas[0].Write(ms);
               ms.Position = 0;
               return new StreamReader(ms).ReadToEnd();
            }
    
    }
    

提交回复
热议问题