共计 1056 个字符,预计需要花费 3 分钟才能阅读完成。
近写接口接到一个需求,就是他们推送数据过来,我们这边来提供服务接口。
对方用的是.NET WebService,已经把所有的对象格式定义好了,可能是为了顾及各个平台的通用性,所以只在文档中提供了 xml 的格式的参数。
但是如果调用我方的接口,肯定对方还是通过他们定义的对象来访问,xml 只不过是中间的传输数据格式而已。
那么我们就要把他们提供的 XML 转换成对象(.cs 文件)。
第一步:
在开始菜单中找到 Visual Studio 下方的 Visual Studio Tools 打开“VS2013 开发人员命令提示”,这里根据不同的 VS 版本名称也不同。
第二步:
在命令行中运行:xsd.exe xml 文件地址 空格 /outputdir: 存放 xsd 的地址
为什么是生成 xsd 文件而不是直接生成.cs 文件其实我也不大清楚,大致转换流程是:
.xml=>.xsd=>.cs
第三步:
再继续执行:xsd.exe xsd 文件地址 空格 /classes /outputdir:class 类文件地址
经过以上步骤,xml 对象的类文件就生成出来了。
如果写过 WebService 的小伙伴应该可以发现,这里生成的对象类的格式,跟 WebService 引用的服务对象代码格式是如出一辙的。
所以我想 Visual Studio 引用服务的时候应该也是用的 xsd.exe 工具。
另外即使不是 WebService 对象生成的 xml 应该也可以根据这个方法来生成对象类。
xsd.exe 其他具体参数:
xsd file.xdr [/outputdir:directory][/parameters:file.xml]
xsd file.xml [/outputdir:directory] [/parameters:file.xml]
xsd file.xsd {/classes | /dataset} [/element:element]
[/enableLinqDataSet] [/language:language]
[/namespace:namespace] [/outputdir:directory] [URI:uri]
[/parameters:file.xml]
xsd {file.dll | file.exe} [/outputdir:directory] [/type:typename […]][/parameters:file.xml]
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-05/143507.htm