让我们假设,我有3个XSD模式:
- BaseSchema.xsd:包含可重复使用的类型,例如位置、颜色、地址、国家/地区列表
- SchemaA.xsd:包括基本模式,并且特定于域A
- SchemaB.xsd:包括基本模式,并且特定于域B
我想生成它们相应的C#类。我可以运行
- "XSD.exe/c SchemaA.XSD BaseSchema.XSD"+"XSD.exe/c SchemaB.XSD BaseSchema.XSD"生成的2个c#文件,其中包含BaseSchema 2x中的类。不好
- "XSD.exe/c SchemaA.XSD SchemaB.XSD BaseSchema.XSD",它只为BaseSchema.XSD中的类型生成一个c#类。这很好,但并不总是可能的。例如,如果我必须使用已经包含生成的BaseSchema和Schema B类的第三方程序集。
有没有一种方法可以增量生成C#类?例如,通过在命令行中以某种方式包含程序集来指示生成器重用已经生成的C#类,而不是再次创建它们?
根据您想要投入的时间和精力,我会
a) 使用"XSD.exe/c SchemaA.XSD SchemaB.XSD BaseSchema.XSD",从文件中删除生成的BaseSchema类并链接到第三方库。
b) 使用Xsd2Code。它不会开箱即用,但可以很容易地根据您的需求进行修改。
我不认为xsd.exe提供了另一个合适的解决方案。