我在使用xsd.exe(与.NET SDK一起提供的代码)以及Xsd2Code(http://xsd2code.codeplex.com/)代码生成时遇到问题。带xsd的XSD代码生成(C#):包括
我有XSD文件的以下设置:
- Common.xsd
- Summary.xsd
- Detail.xsd
共同定义了一些类型中都使用摘要和“细节”,因此“摘要”和“细节”均包含行<xs:include schemaLocation="Common.xsd" />
。
现在,我尝试的所有XSD代码生成工具的问题是,他们只采用顶级类型的XSD文件(所以摘要/详细信息)并在ONE命名空间中创建类。
这样做的问题是,如果我使用这些工具,我会在Common.xsd(Namespace.Summary.CommonType和Namespace.Detail.CommonType)中获得每种类型的2个精确副本。当我想在代码中使用它们时,我总是必须在它们之间进行转换(基本上只是复制所有值),这是相当麻烦的,会导致相当多的开销和混乱。
是否有任何XSD代码生成工具处理包括更好(即将放入包含类型到自己的名称空间,只生成一次)?
这将是非常酷,但交换机根本不起作用(尽管我添加了它仍然包含所有生成的类型)。 – chrischu 2012-04-26 06:50:37
@chrischu是你的xsd文件包含或导入?有一个微妙的差异,可能会抛出xsd2code ... – MattDavey 2012-04-26 09:06:37
它们包括在内(如原始问题中所示)。 – chrischu 2012-04-26 13:55:43