Visual Xml到.net对象映射器

时间:2009-02-09 19:18:56

标签: .net xml xml-serialization xsd mapping

大家好:我必须将我的数据,几乎整个域模型结构导出到正式的xml文件中。有没有人知道我可以用来将xml架构映射到我的.NET对象模型的可视化工具?

4 个答案:

答案 0 :(得分:1)

将对象导出到xml的最简单方法是使用<Serializalbe>属性标记每个类。然后拨打XmlSerializer.Serialize()

您还可以使用XmlSerializer.Deserialize()将xml导回到对象中。

如果您需要架构,则可以使用xsd.exe使用以下任一方法生成它:

  1. 类库本身:xsd.exe myClassLibrary.dll
  2. 调用XmlSerializer.Deserialize()生成的xml文件:xsd.exe myFile.xml
  3. 有关更多详情,请参阅xsd.exeXmlSerializer的文档。

答案 1 :(得分:0)

另一种方法很简单:您可以使用xsd.exe从XSD架构生成.Net数据绑定类模型。

但是在.Net中使用任意对象模型并将其序列化为XML - 我甚至不确定它是否可行。您的某些类型必然比您在XML中表示的类型更复杂。因此,似乎从XML方面开始是必要的。

答案 2 :(得分:0)

我知道在.NET框架中不支持这种情况。

我会开始查看反射,循环遍历所有类型及其成员,在XML中发出相应的描述。

答案 3 :(得分:0)

其他人已经指出了Visual Studio中的XSD支持。这有一个可视化设计器,但它不会映射到您的类 - 它可以创建强类型对象。

在少数情况下,XMLSerialization很棒:1)数据传输(Web服务)2)节省原型时间。我强烈建议不要将对象的直接XML序列化作为持久性机制(永久存储)。当您需要更改架构时,这将是痛苦的。是的,有理论上的解决方案,我从未见过它们在实践中很容易运作。我感到很多痛苦维护(和重新设计)快速序列化解决方案,并对此有强烈的感受:)

问题是您导出域模型的原因?这只是一个导出功能吗?如果是这样,序列化可能很棒。您可能找不到可视化工具来执行此操作。但是通常很容易在类上创建具有属性的正式,甚至漂亮的XML。