以编程方式序列化类到xsd

本文关键字:xsd 序列化 编程 方式 | 更新日期: 2023-09-27 18:15:58

是否有一种方法可以从c# .NET类以编程方式创建XSD ?我想用类型信息将对象序列化为xsd(或xml)。

以编程方式序列化类到xsd

是;看看XsdDataContractExporter;MSDN在这里有一个完整的例子。

替代;XmlSchemaExporter

这应该也会给你类型!(如果您正在寻找xml解决方案,对于xsd解决方案,Marc有答案;-))

var oEmp = new Emp { FirstName = "John", LastName = "Smith", DOJ = DateTime.Today };
            using (var stream = File.Create("J:''XML''Employee.xml"))
            {
                var sri = new SoapReflectionImporter();
                var xtm = sri.ImportTypeMapping(typeof(Emp));
                var serializer = new XmlSerializer(xtm);
                serializer.Serialize(stream, oEmp);
            }

输出XML…

<?xml version="1.0"?>
<Emp xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" id="id1">
  <FirstName xsi:type="xsd:string">John</FirstName>
  <LastName xsi:type="xsd:string">Smith</LastName>
  <DOJ xsi:type="xsd:dateTime">2011-11-29T00:00:00+01:00</DOJ>
</Emp>