我在使用 xsd.exe(.NET SDK 提供的那个)和 Xsd2Code(http://xsd2code.codeplex.com/)生成代码时遇到问题。
我有以下 XSD 文件设置:
- 通用.xsd
- 摘要.xsd
- 细节.xsd
Common 定义了一些在 Summary 和 Detail 中都使用的类型,因此 Summary 和 Detail 都包含该行<xs:include schemaLocation="Common.xsd" />
。
现在我尝试的所有 XSD 代码生成工具的问题是它们只采用顶级类型(即摘要/详细信息)的 XSD 文件并在 ONE 命名空间中创建类。
这样做的问题是,如果我使用这些工具,我会得到 Common.xsd 中每种类型的 2 个精确副本(Namespace.Summary.CommonType 和 Namespace.Detail.CommonType)。当我想在代码中使用它们时,我总是必须在它们之间进行转换(基本上只是复制所有值),这非常麻烦,并导致大量开销和混乱。
是否有任何 XSD 代码生成工具可以更好地处理包含(即将包含的类型放入自己的命名空间并且只生成一次)?