并感谢您的阅读。
我正在实现基于预定义规范 (HR-XML 3.0) 的 WCF 服务。因此,我从模式开始,然后回到代码中。本规范提供了许多与我的实现相关的大型 Schema 文档(导入更多的 Schema 文档)。
通过提供“主”和“支持”xsd 文件作为参数,我能够使用 xsd.exe 生成代码。但是有几个问题,我想知道这是否是正确的方法。
- 几乎有数百个类 - 代码文件大小为半兆
- 重复的类(例如 Type、Type1 - 它们都代表相同的类型)
- 有声明为从基类继承的类,但未生成/定义该基类
我了解在针对 DataContractSerializer 甚至 XmlSerializer 时,svcutil.exe/xsd.exe 支持的 Schema 类型存在限制。我的问题有两个:
- 在处理较大的模块化 xsd 文件时,代码生成“问题”是否相当普遍?有没有人成功地从 OAGIS 或 HR-XML 模式生成数据合同?
- 鉴于上述问题,是否有更好的方法来完成这项任务,避免生成代码和使用具体对象?直接读取和编写 SOAP 消息是否更好,同时仍然利用 WCF 框架的其余部分?我知道我正在失去使用 .NET 对象的便利性以及框架提供的(反)序列化;考虑到这些损失,将我的服务基于 WCF 是否仍然有利?在使用 .NET 类型和纯 XML 之间是否存在一些“中间立场”?
非常感谢!
-Sasha Borodin DFWHC.org