edo*_*oft 76 c# xsd code-generation
我正在从xsd模式文件中进行代码生成方面的一些研究.我的要求:
(另请参阅我的其他问题:如何使用常见包含从xsd生成多个类?以及如何从wsdl中的xs:documentation标记生成注释?
我找到了以下选项:
我错过了吗?因为(1),(2)和(5)不生成2.0代码,并且我在从(3)序列化代码时遇到问题.生成代码时你会用什么?
Xca*_*bur 62
我相信XSD2Code是目前最好的工具(2011年).
我最近在分析可用工具的过程中经历了相同的过程,所以我想我会提供与VS2010相关的更新答案.
我们的主要驱动因素是xsd.exe不会从XSD注释中生成XML文档,我们需要这些文档,因为我们有数百种类型定义.我尝试了上面列出的所有工具以及其他工具,大多数工具已弃用,未维护或无法匹配VS2010中可用的xsd.exe的当前功能.
然而,Xsd2Code是一个极好的工具,似乎是积极维护的.它提供了上面列出的所有功能以及更多功能 - CodePlex页面还提供了各种选项如何影响输出的很好示例.
它还具有紧密的VS集成,包括上下文菜单集成和自定义构建工具(这意味着如果您在项目中引用XSD并指定自定义工具,它将在您更新XSD时自动更新代码).总而言之,我们为我们节省了大量的工作.
我看到的其他工具的快速摘要:
附录: 如果您决定继续使用XSD2Code,我发现使用命令行工具时会遇到许多问题.特别是,参数处理存在一些错误,这些错误需要一些参数以某种顺序以及一些未记录的依赖项(例如 - 自动参数和.NET版本是特定于顺序且依赖的).以下是我用于使用XSD2Code生成代码然后清理输出的步骤 - 根据需要获取适用于您的位:
运行以下批处理文件以生成初始代码,将路径更改为正确的位置:
@echo off
set XsdPath=C:\schemas
set OutPath=%XsdPath%\Code
set ExePath=C:\Progra~1\Xsd2Code
set Namespace=InsertNamespaceHere
echo.Starting processing XSD files ...
for /f %%a IN ('dir %XsdPath%\*.xsd /a-d /b /s') do call:ProcessXsd %%a
echo.Finished processing XSD files ...
echo.&pause&
goto:eof
:ProcessXsd
%ExePath%\Xsd2Code %~1 %Namespace% %XsdPath%\Code\%~n1%.cs /pl Net35 /if- /dc /sc /eit
echo.Processed %~n1
goto:eof
Run Code Online (Sandbox Code Playgroud)
根据需要执行以下步骤以整理生成的代码:
希望能帮助别人.
我还没有检查过,但Linq2XSD可能是一个有用的选择.
我打算给这个人一个机会.使用XSD生成的LINQ将优于您提到的任何这些工具 - 只要它工作得很好.
| 归档时间: |
|
| 查看次数: |
55134 次 |
| 最近记录: |