关于包含文件和代码生成的 XSD.exe 问题

Posted

技术标签:

【中文标题】关于包含文件和代码生成的 XSD.exe 问题【英文标题】:XSD.exe question about include files and code generation 【发布时间】:2011-03-04 05:35:09 【问题描述】:

如果您有一个包含引用的 XSD。 是否可以生成 2 个单独的类文件。 1 个用于 XSD,1 个用于包含的 XSD?

我的场景 4 个 XSD,每个共享 15-20 个共同的元素定义。 我不想维护,而是希望 4 个 XSD 都引用具有通用定义的第五个文件,并生成 5 个 .cs 文件以供使用。

【问题讨论】:

【参考方案1】:

不,XSD.exe 将为所有导入生成类 试试XSDObjectGen。它支持 XML 包含(不过,只有一层)。

【讨论】:

我不确定这是否能完全回答我的问题。进一步的谷歌搜索表明,通过在一次调用 xsd.exe 中包含多个文件,我可能可以在 1 个 .cs 文件中实现我想要的结果。但是我已经尝试过 XSDObjectGen,但我也无法让它为每个源文件生成 1 个文件,这就是我所追求的。【参考方案2】:

我目前正在破解 xsd2code 以提供此功能。我认为 linqtoxsd 也可以很容易地扩展。这些代码域的东西让我很头疼..

如果您对每个文件单独调用 xsd,您将遇到的问题是,每个单独的输出 cs 文件都将定义充实基础文件所需的所有类,因此它将在包含的 xsd 中找到类。如果您对所有具有公共包含文件的多个 xsd 执行此操作,您将得到包含的代码的重复声明。

【讨论】:

是的。注意到。到目前为止,除了将所有内容整合到一个大文件中之外,别无选择。

以上是关于关于包含文件和代码生成的 XSD.exe 问题的主要内容,如果未能解决你的问题,请参考以下文章

XSD.exe 和“循环组引用”

多个 xsd 文件的 xsd.exe 类生成器问题

让 xsd.exe 生成俄罗斯娃娃风格的文件

使用 xsd.exe 或 svcutil.exe 对 UWP 和 Xamarin 进行 C# XML 序列化

是否有与 xsd.exe 等效的 JSON?

使用 xsd.exe 命令工具将 xsd 架构生成 类(CS) 文件