我在使用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