2010-01-19 49 views
2

我有一个类的负载,我需要为这些类生成一个XML模式。将类的所有属性序列化为XML

我认为最简单的方法是创建类,将其序列化为XML,然后在此XML上运行XSD。

但是,如果我没有设置类的属性,则不会创建XML节点,因此XSD不会将其选中。

有没有一种方法可以让我告诉XML序列化程序来序列化一个类的所有属性,而不仅仅是那些具有值设置的属性?

充满希望,超乎期待! Duncan

回答

3

XSD.EXE可以从程序集生成模式。只需指定/type开关。

+0

谢谢,提醒大家你需要给完全合格的命名空间,如下所示: xsd Assembly.dll /type:namespace.*/outputdir:C:\ temp – Duncan 2010-01-19 14:21:12

2

当然。实施IXmlSerializable,你有完整的控制。另外,我相信你已经知道有几种不同的方法来解析/验证Xml ......并且因为你在Microsoft平台上......这些工具(在MSDN上可用)可以派上用场(自动生成C#代码)if(if您决定序列化/反序列化到/来自模式:xsd.exe和xsdObjectGen.exe(更多选项)。

+0

谢谢,我忘了这个。我还想知道是否有一个魔法属性可以附加到我的课程上面,而我不需要实现这个接口就可以做到这一点? – Duncan 2010-01-19 13:42:49

2

使用元数据属性

[XmlElement(IsNullable=true)] 

它将,但是,添加额外的属性XSI:无=“true”以序列化的输出,如果该字段为空。

相关问题