栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

XSD代码生成器的比较[关闭]

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

XSD代码生成器的比较[关闭]

我相信XSD2Code是目前可用的最佳工具(2011年)。

最近,我在分析可用工具的过程中经历了相同的过程,因此我想我将提供与 VS2010 相关的更新答案。

我们的主要驱动因素是 xsd.exe 不会从XSD批注生成XML
doc,而由于我们拥有数百种类型定义,因此我们希望这样做。我尝试了上面列出的所有工具以及其他工具,其中大多数工具已被弃用,未维护或无法与VS2010中提供的xsd.exe当前功能匹配。

*但是 *Xsd2Code 是一个出色的工具,似乎正在积极维护。它提供了上面列出的所有功能以及更多功能-
CodePlex页面还提供了有关各种选项如何影响输出的出色示例。

它还具有紧密的VS集成,包括上下文菜单集成和自定义构建工具(这意味着,如果您引用项目中的XSD并指定自定义工具,它将在更新XSD时自动更新代码)。总而言之,为我们节省了很多工作。

我看过的其他工具的快速摘要:

  • Dingo-似乎更符合Java
  • XSDCodeGen-有关如何编写自定义构建工具的更多演示
  • CodeXS-非常好的工具,但集成度,功能较少且不再维护
  • XSDObjectGen-不再维护,功能少于当前的xsd.exe
  • XSDClassGen-无法找到它
  • OXM库 - 建议 查看此项目,并对其进行维护并提供出色的功能
  • LINQ to XSD-非常 酷的 项目,但不是我想要的

附录:
如果您决定继续使用XSD2Code,则发现在使用命令行工具时存在许多问题。特别是,在参数处理过程中存在一些错误,要求某些参数按一定顺序排列,以及一些未记录的依赖关系(例如-
自动参数和.NET版本是特定于顺序的并与之相关)。以下是我使用XSD2Code生成代码然后清除输出的步骤-根据需要采用适用于您的代码:

运行以下批处理文件以生成初始代码,并将路径更改为正确的位置:

@echo offset XsdPath=C:schemasset OutPath=%XsdPath%Codeset ExePath=C:Progra~1Xsd2Codeset Namespace=InsertNamespaceHereecho.Starting processing XSD files ...for /f %%a IN ('dir %XsdPath%*.xsd /a-d /b /s') do call:ProcessXsd %%aecho.Finished processing XSD files ...echo.&pause&goto:eof:ProcessXsd%ExePath%Xsd2Code %~1 %Namespace% %XsdPath%Code%~n1%.cs /pl Net35 /if- /dc /sc /eitecho.Processed %~n1goto:eof

根据需要执行以下步骤来整理生成的代码:

  1. 正则表达式-当前项目,案例,整个单词- [System.Runtime.Serialization.DataContractAttribute(Name:b * =:b *:q,:b 命名空间:b =:b * {:q})]用[DataContract(命名空间= 1)]
  2. [DataMember] 替换-当前项目,案例,整个单词- [System.Runtime.Serialization.DataMemberAttribute() ]
  3. 正则表达式替换-当前项目,大小写,整个单词 -System.Nullable <{:w}> 1 ?
  4. 正则表达式替换-打开文档,大小写,整个单词- {:w} TYPE 1
  5. 替换-打开的文档,案例,整个单词- System.DateTime的日期时间 ,然后添加缺少using语句
  6. [XmlIgnore] 替换-打开文档,大小写,整个单词- [System.Xml.Serialization.XmlIgnoreAttribute() ]
  7. 替换-当前项目- System.Xml.Serialization.XmlArrayAttributeXmlArray
  8. 替换-当前项目- System.Xml.Serialization.XmlArrayItemAttributeXmlArrayItem
  9. 正则表达式替换-当前的项目- ,[:WH] + /// <辞/ >

希望能对某人有所帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/573240.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号