XSD .net code gen +替代序列化方法

时间:2010-07-21 16:15:19

标签: .net xml-serialization code-generation xsd

我有时间决定使用我正在构建的类库的方向。

我有一批行业标准的XSD,我正在生成.net对象。我已经使用了所有XSD.exe,LinqtoXsd,xsd2code甚至OxmLibrary,结果各不相同。但最后,我能够生成适当的.net类,可以序列化/反序列化为标准。

然而 - 使用此xml(api也是标准的一部分)调用的api要求查询也被构建为XML,但与基础XSD有一些差异,具体来说:

- 标签的存在或缺失指示应该“选择”特定字段或以其他方式使用(更新,删除,添加等)。

- xsd中的单值类型,可以在“select”api查询中重复,以指示该字段的where子句的等价物。

我可能会使用上面的代码框架之一来构建查询类型对象的辅助代码,以补充主要数据对象。

因此,我正在考虑指定和序列化查询对象的方法包括:

  • 使用“手动”序列化方法,可以查看单独的查询对象并确定要包含/排除的字段,如果查询指定了多个值,也可以创建重复的标记。

  • 将每个字段更改为从可识别查询的基类型继承,并可为每个元素输出正确的xml。

  • 使用扩展方法,以便每个字段都有额外的方法,可以调用它们来指定查询参数,并且可以重新使用数据对象来创建查询。

  • 使用匿名类型指定字段的子集,并从此

  • 生成查询xml

除此之外,我还需要弄清楚如何破解前面提到的代码生成器,以解决我去的任何方向。

我还没有完全考虑过所有这些,但我想我会把它放在那里以防有人做过类似的工作并提出一些建议。

1 个答案:

答案 0 :(得分:0)

LINQ to XSD正在寻找开发人员。带来一些新的想法和修复错误会很好。我已经维持了一段时间,但我把注意力转移到了CityLizard Framework,它还有一个“XSD到C#”的生成器。